Java--不可覆盖的方法

私有方法不能被覆盖

因为private被自动认为final,对子类是屏蔽的,那么子类中的相同方法就是一个新的方法,编译器不会报错但也不会按期望运行:

 1 public class ClassA  {
 2     private void func()
 3     {
 4         System.out.println("A");
 5     }
 6     public static void main(String[] args) {
 7         ClassA a=new B();
 8         a.func();
 9     }
10 }
11 class B extends ClassA{
12     public void func()
13     {
14         System.out.println("B");
15     }
16 }

  输出为A。public、protected或默认情况下输出都为B。

    静态方法不能被覆盖:

  静态方法是与类,而非单个的对象的关联。单个对象调用静态方法编译不会出错。

 1 public class ClassA  {
 2     public static void func()
 3     {
 4         System.out.println("A");
 5     }
 6     public static void main(String[] args) {
 7         ClassA a=new B();
 8         a.func();
 9     }
10 }
11 class B extends ClassA{
12     public static void func()
13     {
14         System.out.println("B");
15     }
16 }

 

  输出为A。

  方法重写时,子类的访问权限必须大于父类

 

转载于:https://www.cnblogs.com/PersistWp/p/7454817.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值