使用继承时要记住的3句话:
1、子类拥有父类非private的属性和方法;
2、子类可以拥有自己的属性和方法,即子类可以对父类进行扩展;
3、子类可以用自己的方式实现父类的方法;
构造方法:子类不能继承父类的构造方法,但可以通过super()调用,声明子类对象时,自动调用父类构造方法,前提是父类存在默认构造方法存在,但如果手动写了带参的其他构造方法,编译器将不会生成默认构造方法,这时子类如果不通过super显式调用父类构造方法或者不手动给父类添加默认构造方法,编译器就会报错。而且必须在子类构造方法的第一行调用。
继承可以大大提高代码的复用性,但存在如下不足:
1、父类变,子类就必须变,
2、继承破坏了封装,它的实现对子类来说是透明的,
3、继承是一种强耦合关系。
如果必须向上转型,则继承是必要的,否则要谨慎考虑。