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

纸上谈兵之继承(一直会改动这篇文章)

时间:2015-03-31 23:42:50      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:

继承中常见的几个词汇

构造器

Protected

向上转型

复用代码

重写方法

 

Final

Super

向下转型

复用代码是我们一直在追求的,继承就是其中的一种实现方式。

先分析一下继承的优缺点:

    优点,继承可以让我们的在少打很多代码的时候获得新的属性和方法,大大提高了开发效率;并且继承来的方法可以被重写;继承所描述的是is-a,父类和子类的关系一看便知。

     缺点:

         1、父类变,子类就必须变。

         2、继承破坏了封装,对于父类而言,它的实现细节对与子类来说都是透明的。

         3、继承是一种强耦合关系。

所以说当我们使用继承的时候,我们需要确信使用继承确实是有效可行的办法。那么到底要不要使用继承呢?《Think in java》中提供了解决办法:问一问自己是否需要从子类向父类进行向上转型。如果必须向上转型,则继承是必要的,但是如果不需要,则应当好好考虑自己是否需要继承。

另外一条,继承只能是单继不能多继承。

 

向上转型:动物是猫?猫是动物!!!

猫是动物就是向上转型。

由于向上转型是从一个叫专用类型向较通用类型转换,所以它总是安全的,唯一发生变化的可能就是属性和方法的丢失。这就是为什么编译器在“未曾明确表示转型”活“未曾指定特殊标记”的情况下,仍然允许向上转型的原因。

 

 

构造器:构造器只能被调用不能被继承。调用父类的构造器只需要super()即可。

(实际上,在new子类的时候,父类的构造器已经被调用一次了,前提是父类有默认构造器,如果没有,就需要super了,并且super调用构造器必须放在子类构造器里面,否则编译器报错,这里也体现了一点,new子类时,必须同时调用父类和子类的构造器,那这又是为什么呢,这与向上转型是否有联系,如果从引用的角度思考会有什么结果)

 

     对protected的理解,对于用户,protected相当于provate,对于子类,protected却是可以访问的。

     final修饰的属性和方法无法被继承的。

纸上谈兵之继承(一直会改动这篇文章)

标签:

原文地址:http://www.cnblogs.com/ddzj/p/4382140.html

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