继承的本质:
继承的本质就是抽象,给出一个基类,然后建立他的子类,子类是对基类的一个具体描述,而基类是子类的抽象。例如我们创建一个person的类,在创建一个子类man,男人这个类是对人这类的继承,男人具有人一般特征,是对人这个类的特殊具体化。这是因为男人特殊的属性和方法。同理可知woman这个类也是对人特殊具体化。一个名叫张三的人,则是一个对象了,不是一个类。
为什么说继承的本质是抽象呢?我们反过来看,man是一个类,他抽象出所有男人的共性。当然男人也可以划分很多类,例如内向的、开朗的等等。女人也是如此。我们提取男人和女人的共性,即一步抽象就得到人这个类。也就是说人这个类是男人类和女人类的抽象。可以这么认为基类是子类的抽象,子类是对基类的特殊的具体的描述,子类应该有其独有属性或方法,子类不能是基类的一个对象。
继承的优点和缺点:
1.
优点:
a.容易进行新的实现,因为其大多数可继承而来。
b.易于修改或扩展那些被复用的实现。
2.缺点:
a.破坏了封装性,因为这会将父类的实现细节暴露给子类。因为父类的内部细节对于子类而言通常是可见的。
c.当父类的实现更改时,子类也不得不会随之更改。
d.从父类继承来的实现将不能在运行期间进行改变。
a.容易进行新的实现,因为其大多数可继承而来。
b.易于修改或扩展那些被复用的实现。
2.缺点:
a.破坏了封装性,因为这会将父类的实现细节暴露给子类。因为父类的内部细节对于子类而言通常是可见的。
c.当父类的实现更改时,子类也不得不会随之更改。
d.从父类继承来的实现将不能在运行期间进行改变。