Java继承方法隐藏(覆盖)

Posted SXT

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java继承方法隐藏(覆盖)相关的知识,希望对你有一定的参考价值。

方法隐藏

一个类从其超类继承所有非私有静态方法。在子类中重新定义继承的静态方法称为方法隐藏。子类中的重定义静态方法隐藏其超类的静态方法。在类中重定义非静态方法称为方法覆盖。
关于方法隐藏的重定义方法(名称,访问级别,返回类型和异常)的所有规则与方法覆盖相同。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class MySuper {
  public static void print() {
    System.out.println("Inside MySuper.print()");
  }
}
 
class MySubclass extends MySuper {
  public static void print() {
    System.out.println("Inside MySubclass.print()");
  }
}
 
public class Main {
  public static void main(String[] args) {
    MySuper mhSuper = new MySubclass();
    MySubclass mhSub = new MySubclass();
    MySuper.print();
    MySubclass.print();
    ((MySuper) mhSub).print();
    mhSuper = mhSub;
    mhSuper.print();
    ((MySubclass) mhSuper).print();
  }
}

上面的代码生成以下结果。

 

点击链接查看详细内容

 


以上是关于Java继承方法隐藏(覆盖)的主要内容,如果未能解决你的问题,请参考以下文章

JAVA中方法和变量在继承中的覆盖和隐藏

JAVA中方法和变量在继承中的覆盖和隐藏

方法和变量在继承时的覆盖和隐藏问题

Java自学-接口与继承 隐藏

Java程序设计类的重用

15. 继承重载覆盖隐藏