慕标1072551
2020-09-07 01:47
测试类:
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)
是一种重写
变量不可以重写
Java入门第二季
531287 学习 · 6327 问题
相似问题