java多态成员的特点

父类:

1 package com.company;
2 
3 public class A {
4     public  int h=2;
5     public void ok(){
6         System.out.println("i am father!");
7     }
8 }

 子类:

1 package com.company;
2 
3 public class B  extends  A{
4     public  int h=8;
5     public  void  ok(){
6         System.out.println("i am child !");
7     }
8 }

 调用类(使用多态):

1 package com.company;
2 
3 public class C {
4     public  static  void  main(String ...args){
5         A  a=new B();
6         System.out.println(a.h);
7         a.ok();
8     }
9 }

输出:

调用类(不使用多态)

 1 package com.company;
 2 
 3 public class C {
 4     public  static  void  main(String ...args){
 5         A  a=new B();
 6         System.out.println(a.h);
 7         a.ok();
 8         B b=new B();
 9         System.out.println(b.h);
10         b.ok();
11     }
12 }

输出结果:

结论:

多态的体现在:接口、普通类、抽象类。

语法形式:父类 (接口、抽象类) 变量 =new 子类(实现类)();

成员特点:

1、在使用多态的时候,调用的变量值是父类的变量值,如果有编译成功,没有失败。不会看子类的变量。

2、在使用多态的时候,如果调用方法的时候,查看子类和父类,父类有,看子类是否重写,如果重写的话,调用子类的重写方法,如果父类没有该方法,子类即使有该方法也编译失败。

原文地址:https://www.cnblogs.com/evilliu/p/7693313.html