快捷导航

关于方法覆写的问题,大神请进

class Person{    private void print(){        System.out.println("Person -> void print()") ;    }    public void fun(){        this.print() ;    }}class Student extends Person{    void print(){        System.out.println("Student -> public void print()") ;    }}public class OverrideDemo02{    public static void main(String args[]){        new Student().fun() ;    }}运行结果为:Person -> void print()  请教下为什么。

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员2

你这不是重写,因为重写不能改写private方法。父类的private print方法在子类中是看不到的,但它却存在于子类的数据空间中。子类Student又重新定义了一个自己的print方法而已。
你把父类的print方法前的private去掉,就变成真正的重写了,结果也会变成Student -> public void print()
回复

使用道具 举报

楼上说的对
回复

使用道具 举报

可能感兴趣的问答

发新帖
TA的信息
  • 会员所属: 注册会员
  • 认证信息: 邮箱认证手机认证
  • 微信访问
  • 手机APP