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

10:上溯造型

时间:2016-10-02 23:52:34      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:

相关代码:

 1 class a{}
 2 class Hello{
 3     Hello(a example){
 4         System.out.println("yo");
 5     }
 6 }
 7 class aa extends a{}
 8 public class SprinklerSystem { 
 9  public static void main(String[] args) {
10      a c=new a();
11      aa d=new aa();
12      Hello q=new Hello(c);
13      Hello w=new Hello(d);
14     }
15 }

    由代码可看出,Hello构造器中的标准参数为对象a,但是看第13行,a的子类b被带入到Hello构造器中也是可以成立的,这就是所谓的”上溯造型“。子类是父类的超集,它至少了父类中的所有方法,所以”上诉造型“对于父类是可行的话那么对于子类也是可行的,不过有可能在子类上溯造型的时候丢失方法(父类中没有的)。

    有上溯造型,那么就有下溯造型,虽然两者均可行,但是下溯造型的问题是要多于上溯造型的。比如说方法中使用了子类相对于父类多出的方法/变量时,使用下溯造型将父类带入到方法中就会出错。

10:上溯造型

标签:

原文地址:http://www.cnblogs.com/cramile/p/5928296.html

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