Java知识:继承

来源:互联网 发布:php wsdl 调用 编辑:程序博客网 时间:2024/06/07 08:57

继承的一些知识点:
1、子类拥有父类非private的属性和方法。其实子类是拥有父类的所有属性和方法,包括private修饰的属性和方法,只不过private修饰的属性和方法对子类来说不可见。private修饰符使其可见性变差。
2、子类可以拥有自己属性和方法,即子类可以对父类进行扩展。
3、子类可以用自己的方式实现父类的方法。
4、对于构造器而言,它只能够被调用,而不能被继承。构造器和类的名字是一样的,如果构造器被继承,对于子类来说他还能称作构造器吗?
5、对于继承而已,子类会默认调用父类的构造器,但是如果没有默认的父类构造器,子类必须要显示的指定父类的构造器,而且必须是在子类构造器中做的第一件事(第一行代码)。如果有一道面试题,让你找错误:父类的构造器是含参的不是默认的,而且子类构造器前面没有写父类构造器,那么是错误的,应该显示调用父类构造器。

慎用继承!
继承存在如下缺陷:
1、父类变,子类就必须变。
2、继承破坏了封装,对于父类而言,它的实现细节对与子类来说都是透明的。
3、继承是一种强耦合关系。
那么什么时候需要用继承呢?
问一问自己是否需要从子类向父类进行向上转型。如果必须向上转型,则继承是必要的,但是如果不需要,则应当好好考虑自己是否需要继承。

转的!