java如何继承属性
继承属性的基本概念
在Java中,继承允许一个类(子类)继承另一个类(父类)的属性和方法。子类可以直接访问父类的非私有属性和方法,无需重新定义。
定义父类
父类包含需要被继承的属性和方法。例如:

public class Parent {
protected String name; // 使用protected修饰符允许子类访问
private int age; // 私有属性无法被子类直接访问
public Parent(String name, int age) {
this.name = name;
this.age = age;
}
public void display() {
System.out.println("Name: " + name + ", Age: " + age);
}
}
定义子类
子类通过extends关键字继承父类,并可以直接使用父类的非私有属性:

public class Child extends Parent {
private String hobby;
public Child(String name, int age, String hobby) {
super(name, age); // 调用父类构造函数
this.hobby = hobby;
}
public void showDetails() {
System.out.println("Name: " + name); // 直接访问父类的protected属性
System.out.println("Hobby: " + hobby);
}
}
调用子类
创建子类对象并调用方法:
public class Main {
public static void main(String[] args) {
Child child = new Child("Alice", 10, "Painting");
child.display(); // 调用父类方法
child.showDetails(); // 调用子类方法
}
}
注意事项
- 访问修饰符:父类属性需为
protected或public才能被子类直接访问。private属性需通过父类的公共方法(如getter/setter)间接访问。 - 构造函数:子类构造函数必须通过
super()调用父类构造函数。 - 方法重写:子类可以重写父类方法以修改行为。
通过Getter/Setter访问私有属性
若父类属性为private,需通过公共方法访问:
public class Parent {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class Child extends Parent {
public void printName() {
System.out.println("Name: " + getName()); // 通过getter访问
}
}






