慕标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入门第二季 升级版
530653 学习 · 6091 问题
相似问题