关于继承中(静态方法+私有方法)的覆盖与重写问题

//关于继承中(静态方法+私有方法)的覆盖与重写问题
public class SuperCla {

//父类中的静态方法
public static int staMet(String str){
    System.out.println("父类中的静态方法");
    System.out.println("参数是"+str);
    return 0;
}

private void priMet(){
    System.out.println("父类中的私有方法");
}

}

package firstExam.biShi_test;

public class SubCla {
/*
* 注意:父类的静态方法不能被重写,即方法①前不能加@Override重写标志;
* 但是可以如代码②一样,在子类中实现父类的静态方法的覆盖;
* 大致解释如下:静态方法只与定义时所在的类相关,在编译期间就已经绑定到某个类,
* 对于static的静态方法,只有继承,重载与隐藏,没有重写。
*
@Override
public static int staMet(String str){—–①
System.out.println(“我是子类的要覆盖父类的静态方法”);
System.out.println(“参数是”+str);
return 0;
}
*/

public static int staMet(String str){//-----②
    System.out.println("我是子类的要覆盖父类的静态方法");
    System.out.println("参数是"+str);
    return 0;
}

/*
* 注意:父类的私有方法不能被重写,即方法③前不能加@Override重写标志;
* 但是可以如代码④一样,在子类中实现父类的私有方法的覆盖;
*
* 注意:一个类的私有方法是不能被重写的,因为私有方法不能被子类访问。子类在继承的时候,
* 只有public和protected修饰的方法才可以被重写;
* 对于子类不可见的private成员,以及没有被访问修饰符修饰的默认类成员(如果子类与父类在不同的包中,
* 这一类的类成员也是对子类不可见的),他们对于子类不可见,但是当创建了子类的实例的时候,这些成员一样
* 会被加载入内存,并“隐藏”在内存中。
*
@Override
private void priMet(){—-③
System.out.println(“父类中的私有方法”);
}
*/

private void priMet(){//----④
    System.out.println("父类中的私有方法");
}
public static void main(String[] args) {
    SuperCla superCla=new SuperCla();
    superCla.staMet("一曦");
    SubCla subCla=new SubCla();
    subCla.staMet("莫离");



}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值