子类中的成员包括从父类继承的成员和新增成员两部分。这是因为子类继承了父类的所有public和protected成员(字段、方法和嵌套类型),这些成员默认情况下可以在子类中访问和使用,也可以被子类覆盖或重写。但是,子类也可以新增自己的成员,包括字段、方法和嵌套类型,这些新增的成员只在子类中可见。这样做可以使子类更加灵活地定制自己的行为和特性,同时也便于代码的维护和扩展。
在Java中,子类可以通过继承和重写来获得父类的成员,同时也可以通过关键字“super”来调用父类的构造方法、方法和字段。例如,在下面的代码中,子类Car继承了父类Vehicle的构造方法、drive方法和color字段,同时新增了自己的brand字段和run方法。
public class Vehicle {
protected String color;
public Vehicle(String color) {
this.color = color;
}
public void drive() {
System.out.println("Vehicle is driving...");
}
}
public class Car extends Vehicle {
private String brand;
public Car(String color, String brand) {
super(color);
this.brand = brand;
}
public void run() {
System.out.println(brand + " car is running...");
}
public void drive() {
System.out.println(brand + " car is driving...");
super.drive(); // 调用父类的drive方法
}
}
在上述代码中,Car继承了Vehicle的构造方法和drive方法,并且覆盖了父类的drive方法。Car的构造方法通过super关键字调用了父类的构造方法,并且新增了自己的brand字段。同时,Car还新增了自己的run方法,这些成员只在Car中可见。
总之,子类中的成员包括从父类继承的成员和新增成员两部分,这样的设计可以更好地复用代码、定制化行为和增强代码的功能。