目录
类的继承
继承是一种新建类的方式,新建的类称为子类,被继承的类称为父类。继承是类与类之间的关系,使用继承可以减少代码的冗余,可以通过下图简单的了解类的继承:继承是一种新建类的方式,新建的类称为子类,被继承的类称为父类。继承是类与类之间的关系,使用继承可以减少代码的冗余,可以通过下图简单的了解类的继承:
继承的优点和缺点
继承的优点有:①代码冗余度低,开发时间短;②代码扩展性高,系统开发灵活性强;③代码重用性高,系统出错概率低。除了优点,也有相应的缺点:①继承是侵入性的,只要继承,就必须拥有父类的所有属性和方法;②子类拥有父类的属性和方法,增加了子类代码的约束,降低了代码的灵活性;③当父类的常量、变量和方法被修改时,需要考虑子类的修改,而且在缺乏规范的环境下,这种修改可能带来大段代码需要重构的后果,增强了代码的耦合性。
继承的实现
通常使用extends关键字来实现子类对父类的继承,而且所有的类都是继承于java.lang.Object,当一个类的定义没有使用extends关键字时,则默认继承object(这个类在java.lang包中,所以不需要import)祖先类。在Java中,类的继承是单一继承,即一个子类只能拥有一个父类,所以extends只能继承一个类。在子类中,可以通过this关键字来实现对自己成员的访问,通过super关键字来实现对父类成员的访问,继承除了扩展父类的功能,还可以重写父类的成员方法。例如:
//基类:
public class Dog {
private int sex;
private int length;
public Dog(int dogSex, int dogLength) {
//初始化属性值
}
public void walk() {
System.out.println("Dog is walking.");
}
public void run() {
System.out.println("Dog is running.");
}
}
//继承类:
public class WatchDog extends Dog{
public WatchDog() {
super(); //调用父类构造方法
super.walk(); //调用父类成员方法
}
public void run() {
System.out.println("WatchDog is running."); //重写父类方法
}
public void watchDoor() {
this.run(); //调用子类成员方法
System.out.println("WatchDog is watching door.");
}
}