abstract class override property java