码迷,mamicode.com
首页 > 其他好文 > 详细

父类引用指向子类对象

时间:2014-10-21 22:58:36      阅读:323      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   ar   使用   sp   div   log   bs   

 1 public class Test {
 2     /**
 3      * 对于多态,可以总结它为:       
 4 
 5          一、使用父类类型的引用指向子类的对象;
 6 
 7         二、该引用只能调用父类中定义的方法和变量;
 8 
 9         三、如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法;(动态连接、动态调用)
10 
11         四、变量不能被重写(覆盖),”重写“的概念只针对方法,如果在子类中”重写“了父类中的变量,那么在编译时会报错。
12 
13         多态的3个必要条件:
14 
15         1.继承   2.重写   3.父类引用指向子类对象。
16      * @param args
17      */
18     public static void main(String[] args) {
19         A b = new B();
20         b.printN();//4
21         b.printM();//4
22         System.out.println(b.n);//0
23         System.out.println(b.m);//0
24         
25         B ba = (B)b;
26         ba.printN();//4
27         ba.printM();//4
28         System.out.println(ba.n);//4
29         System.out.println(ba.m);//4
30         
31         B bb = new B();
32         bb.printN();//4
33         bb.printM();//4
34         System.out.println(bb.n);//4
35         System.out.println(bb.m);//4
36     }
37     
38 }
39 
40 class A{
41     int n = 0;
42     static int m = 0;
43     public void printN(){
44         System.out.println(n);
45     }
46     
47     public void printM(){
48         System.out.println(m);
49     }
50 }
51 class B extends A{
52     int n = 4;
53     static int m = 4;
54     public void printN(){
55         System.out.println(n);
56     }
57     public void printM(){
58         System.out.println(m);
59     }
60 }

 

父类引用指向子类对象

标签:style   blog   color   ar   使用   sp   div   log   bs   

原文地址:http://www.cnblogs.com/wanghui390/p/4041651.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!