java 多态 向上造型

Posted 天晴、、、

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 多态 向上造型相关的知识,希望对你有一定的参考价值。

最近在读java 编程思想,在读多态一章时,遇到了一个问题,在此记录一下。

 1 package main.demo;
 2 
 3 class Super{
 4     public int filed =0;
 5 
 6     public int getFiled() {
 7         return filed;
 8     }
 9 }
10 
11 class Sub extends Super{
12     public int filed = 1;
13 
14     @Override
15     public int getFiled() {
16         return filed;
17     }
18 
19     public int getSuperFiled(){
20         return super.getFiled();
21     }
22 }
23 
24 
25 public class Demo1 {
26     public static void main(String[] args) {
27         Super sup = new Sub();
28         System.out.println(sup.filed+"   "+ sup.getFiled());
29 
30         Sub sub = new Sub();
31         System.out.println(sub.filed+"  "+sub.getFiled()+"  "+sub.getSuperFiled());
32     }
33 
34 
35 }

执行结果:

          

分析:

 Super sup = new Sub();   首先声明了一个变量sup,类型是 Super,然后创建了一个Sub类型的对象,赋值给sup变量,也就是说,除了函数被覆盖了之外,其他的都无变化。所以说,成员变量编译
和运行都看左边。但是函数被复写了,所以说,对于非静态成员函数编译看左边,运行看右边。对于静态函数编译和运行都要看左边。静态函数先于对象被加载,所以没有被复写。

以上是关于java 多态 向上造型的主要内容,如果未能解决你的问题,请参考以下文章

java

java 面向对象之多态

理解JAVA - 面向对象(object) - 属性,方法

第十一周 继承与多态

java 面向对象的三大特性

Java 向上造型