继承通过extends实现子类复用父类非私有成员,如Car继承Vehicle获得brand和start();合理设计父类提取共性,使用protected和抽象方法增强复用与一致性;子类可重写方法并用super调用父类逻辑,实现多态;但应避免过度继承导致高耦合,优先考虑“is-a”关系,推荐组合替代深度继承,保持类易扩展且低耦合。
在Java中,继承是实现代码复用的重要机制之一。通过让子类继承父类,可以共享父类的属性和方法,避免重复编写相同的代码,提升开发效率和程序可维护性。
使用extends关键字可以让一个类继承另一个类。子类自动拥有父类的非私有成员(字段和方法)。
示例:
public class Vehicle {
protected String brand;
public void start() {
System.out.println("车辆启动");
}
}
public class Car extends Vehicle {
private int doors;
public void honk() {
System.out.println("喇叭响了");
}
}
Car类继承Vehicle后,可以直接使用brand字段和start()方法,无需重新定义。
为了有效复用,父类应封装共有的行为和状态。将多个子类中重复出现的代码提取到父类中。
子类访问,同时保持封装性
子类可以在继承的基础上修改或增强父类行为,实现多态。
例如:
@Override
public void start() {
System.out.println("汽车打火启动");
super.start(); // 调用父类原有逻辑
}
这样既保留了通用逻辑,又实现了个性化处理。调用super关键字可复用父类代码,避免重复。
虽然继承能复用代码,但过度使用会导致类之间耦合度过高。
基本上就这些。掌握好继承的使用方式,能让代码更简洁清晰,关键是把握好复用与解耦之间的平衡。