方法可以重写,变量可以吗
测试类:
public class Initail { public static void main(String[] args) { Phone phone = new Phone(); SmartPhone smartPhone = new SmartPhone(); phone.call(); smartPhone.call(); phone.printTarget(); smartPhone.printTarget(); } }
父类
public class Phone { String target = "me"; public void call(){ System.out.println("You call to "+this.target); } public void printTarget(){ System.out.println(this.target); } }
子类
public class SmartPhone extends Phone { //String target = "notme"; //不写这一行,this.target 为父类中的me public void call(){ System.out.println("You call to "+this.target); } public void printTarget(){ System.out.println(this.target); } }
此时运行smartPhone.printTarget()的结果为me,在该类里没有target变量,它却识别到了父类里的target,但如果去掉注释,他就会使用子类的target,这算是一种重写吗?按理说不可以定义重名的变量,那么是重写了(子类有target变量,被覆写为notme),还是说目前的子类中没有target变量,变量是父类的呢?(类似于子类没有target存在时,target 就相当于是 super.target)