java动手动脑之多态
Posted masuo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java动手动脑之多态相关的知识,希望对你有一定的参考价值。
1.java的语法特性:
1 public class ParentChildTest { 2 public static void main(String[] args) { 3 Parent parent=new Parent(); 4 parent.printValue();//1 5 Child child=new Child(); 6 child.printValue();//2 7 8 parent=child;//将子类赋值给父类value变为200 9 parent.printValue();//3,输出200 10 11 parent.myValue++;//父类的value+1,对子类的value之不改变 12 parent.printValue();//4 13 14 ((Child)parent).myValue++;//先进行强制转化变为子类类型,值不会变化,在加一201 15 parent.printValue(); 16 17 } 18 } 19 20 class Parent{ 21 public int myValue=100;//101 22 public void printValue() { 23 System.out.println("Parent.printValue(),myValue="+myValue); 24 } 25 } 26 class Child extends Parent{ 27 public int myValue=200;//201 28 public void printValue() { 29 System.out.println("Child.printValue(),myValue="+myValue); 30 } 31 }
输出显示为:
结论:(1)子类父类要有一样的方法才能实现这样的赋值,子类可以赋值给父类,父类不可以赋值给子类,因为子类继承于父类,是父类的衍生类,通俗说就是:儿子的可以是父亲的,但父亲的不一定是儿子的。
(2)当子类与父类有相同的方法时,让父类变量引用一个子类对象时,以对象的类型来调用,这是面向对象多态的特征的具体现。
(3)覆盖:子类有与父类相同的方法时,要在子类中调用父类的对象,可以使用super关键字
注意:当子类被当作弗雷来使用时,通过子类访问的字段是父类的。
以上是关于java动手动脑之多态的主要内容,如果未能解决你的问题,请参考以下文章