(七)《Java编程思想》——多态的缺陷
2013-07-23 17:39
369 查看
1.不能“覆盖”私有方法
【运行结果】:
private f()
public f()
2.域不呈多态性(只有普通方法具有多态)
【运行结果】:
sup.field = 0 sup.getField() = 1
sub.field = 1 sub.getField() = 1 sub.getSuperField = 0
3静态方法不呈多态性
【运行结果】:
Base staticGet()
Derived dynamicGet()
package chapter8; /** * 不能"覆盖"私有方法 */ public class PrivateOverride { private void f() { System.out.println("private f()"); } public static void main(String[] args) { PrivateOverride po=new Derived(); po.f(); Derived d=new Derived(); d.f(); } } class Derived extends PrivateOverride { public void f() { System.out.println("public f()"); } }
【运行结果】:
private f()
public f()
2.域不呈多态性(只有普通方法具有多态)
/** * */ package chapter8; /** * 缺陷:域与静态方法 */ class Super { public int field = 0; public int getField() { return field; } } class Sub extends Super { public int field = 1; public int getField() { return field; } public int getSuperField() { return super.field; } } public class FieldAccess { public static void main(String[] args) { Super sup = new Sub(); System.out.println("sup.field = " + sup.field + " sup.getField() = " + sup.getField()); Sub sub = new Sub(); System.out.println("sub.field = " + sub.field + " sub.getField() = " + sub.getField() + " sub.getSuperField = " + sub.getSuperField()); } }
【运行结果】:
sup.field = 0 sup.getField() = 1
sub.field = 1 sub.getField() = 1 sub.getSuperField = 0
3静态方法不呈多态性
package chapter8; /** * 静态方法不具有多态性 */ class StaticSuper { public static String StaticGet() { return "Base staticGet()"; } public String dynamicGet() { return "Base dynamicGet()"; } } class StaticSub extends StaticSuper { public static String StaticGet() { return "Derived staticGet()"; } public String dynamicGet() { return "Derived dynamicGet()"; } } public class StaticPolymorphism { public static void main(String[] args) { StaticSuper sup = new StaticSub(); System.out.println(sup.StaticGet()); System.out.println(sup.dynamicGet()); } }
【运行结果】:
Base staticGet()
Derived dynamicGet()
相关文章推荐
- 多态的缺陷:“覆盖私有方法”
- 8多态-Java编程思想
- 多态的缺陷:域和静态方法
- 重温《JAVA编程思想》----2017.1.12 多态与接口(完结版)
- Java编程思想-多态的缺陷
- 多态的缺陷:域和静态方法
- Java编程思想学习(六) 多态
- 《JAVA编程思想》第四版学习 需要我记住的something--多态
- 《Java编程思想》--多态--第8章
- 《Java编程思想》学习笔记:多态
- final关键字、类之间的关系、转型、多态的缺陷、构造器和多态
- 重温《JAVA编程思想》----2017.1.8 访问权限、多态以及一些知识点。
- 《Java编程思想》(第二版)第07章:多态(polymorphism)
- 《java编程思想》第八章:多态
- 多态使用缺陷
- 《JAVA编程思想》学习笔记——第八章 多态
- 《Java编程思想》之多态(面向对象程序语言的第三基本特征)
- 【重修Java】《Java编程思想》读书笔记——多态
- JAVA中多态的“缺陷”
- JAVA编程思想学习第八篇の多态