关于Java多态性的两个特殊情况
来源:互联网 发布:ios9.3.3完美越狱mac 编辑:程序博客网 时间:2024/06/05 20:21
我要分析的两种情况与static和final两个修饰符有关~
1)static
static修饰的方法不能被重写,而final修饰的方法也不能被重写。
2)final
由于private和public的可见性不同,private仅仅是某个特定的类可见,而子类不可见,所以允许子类和父类都可以有用private final修饰的相同方法,如下例中的public final void test2(){};
而public子类可见,如果子类和父类都有public final,那么在子类中就有两个相同的public final方法,这显然是不可以的,因而,不允许子类和父类都可以有用public final修饰的相同方法(protected以及无访问修饰符的也一样)。
示例:(注释为原因和结果)
package com.xujin;class Base{private final void test(){System.out.println("Base,test");}public final void test2(){System.out.println("Base,test2");}public static void test3(){System.out.println("Base,test3");}} public class Test extends Base { //允许子类和父类都有private final存在,但是不允许都有public final存在 private final void test(){ System.out.println("Test,test"); } //public final void test2(){}//Cannot override the final method //static没有被被重写 public static void test3(){ System.out.println("Test,test"); } public static void main(String...agrs){ Base A = new Test(); Base B = new Test(); //A.test();//The method test() from the type Base is not visible A.test2();//Base,test2 A.test3();//Base,test3 B.test2();//Base,test2 B.test3();//Base,test3 } }
- 关于Java多态性的两个特殊情况
- Java多态性的两个特殊情况
- 关于JAVA多态性的理解
- [java面试]关于多态性的理解
- Java程序异常处理的特殊情况
- Java程序异常处理的特殊情况
- java方法的重载与特殊情况
- java 异常处理的一些特殊情况
- 关于两个Activity之间切换的情况
- 关于C++ 引用定义的两种特殊情况
- PopupWindow的特殊情况
- 异常的特殊情况
- Java - Java编程中异常处理的特殊情况
- 【Java】Java的多态性
- 关于Java运行时多态性的实现的猜想
- java多态性中关于private的一个例子
- java replaceall方法替换String的几种特殊情况
- Java:子类调用超类方法的一种特殊情况
- 初识三层
- 计算机考研FAQ18答
- 转:7种JS脚本分页代码 showPages v1.0
- CF 271D Good Substrings(trie树)
- ArcGIS Silverlight API 扩展:将GraphicsLayer/FeatureLayer导出为ShapeFile
- 关于Java多态性的两个特殊情况
- 解决ActiveX控件安装问题的技巧
- 【剁手】CodeForce Round 168 Div B1(熬夜就水出来一个我操)
- libwebsockets – HTML5 Websocket server library in C
- 2012年终总结
- 反思反思
- Lisp的本质 - 从另一种角度洞悉Lisp之美
- hdu 4007 Dave
- Delphi和C++的语法区别