zoukankan      html  css  js  c++  java
  • 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。

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

  • 相关阅读:
    夺命雷公狗---node.js---2node.js中的npm的常用命令
    nginx安装目录
    linux下安装nginx
    mui实现推送功能
    SpringBoot WebSocket实现
    发送短信验证码
    Vue在HTML页面中的脚手架
    SpringBoot邮件发送功能
    毕业设计功能
    毕业设计数据库
  • 原文地址:https://www.cnblogs.com/PersistWp/p/7454817.html
Copyright © 2011-2022 走看看