标签:
继承中常见的几个词汇
构造器
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