为了账号安全,请及时绑定邮箱和手机立即绑定

方法可以重写,变量可以吗

测试类:

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)


正在回答

2 回答

是一种重写

0 回复 有任何疑惑可以回复我~
#1

慕仙7356912

就像是改变了参数值
2021-01-04 回复 有任何疑惑可以回复我~

变量不可以重写

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

方法可以重写,变量可以吗

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信