Java 继承类的基本写法与注意事项

什么是继承
在面向对象编程中,继承是一种机制,允许一个类继承另一个类的属性和方法,继承使得代码复用成为可能,提高了代码的可维护性和可扩展性,在 Java 中,一个类可以继承另一个类,称为父类或基类,而继承这个类的类称为子类或派生类。
Java 继承的基本语法
在 Java 中,使用 extends 关键字来声明一个类继承自另一个类,以下是一个简单的继承示例:
// 定义父类
class Animal {
// 父类属性
public String name;
// 父类方法
public void eat() {
System.out.println(name + " is eating.");
}
}
// 定义子类
class Dog extends Animal {
// 子类属性
public String type;
// 子类方法
public void bark() {
System.out.println(name + " is barking.");
}
}
在这个例子中,Dog 类继承自 Animal 类。Dog 类拥有 Animal 类的所有属性和方法,并且可以添加自己的属性和方法。

重写(Override)方法
在继承关系中,如果子类需要修改父类的方法实现,可以使用重写(Override)关键字,以下是一个重写方法的示例:
// 父类方法
public void eat() {
System.out.println(name + " is eating grass.");
}
// 子类重写方法
@Override
public void eat() {
System.out.println(name + " is eating bones.");
}
在这个例子中,Dog 类重写了 Animal 类的 eat 方法,使得 Dog 类的 eat 方法具有不同的实现。
访问控制符与继承
在 Java 中,访问控制符(public、protected、default、private)决定了类成员的可见性,在继承关系中,子类对父类成员的访问权限取决于父类成员的访问控制符。

- public:子类和父类外部都可以访问。
- protected:子类可以访问,父类的子类也可以访问。
- default(无修饰符):只有同一个包内的类可以访问。
- private:只有类内部可以访问。
以下是一个访问控制符在继承中的示例:
// 定义父类
class Parent {
public String publicField = "public";
protected String protectedField = "protected";
String defaultField = "default";
private String privateField = "private";
public void publicMethod() {
System.out.println("public method");
}
protected void protectedMethod() {
System.out.println("protected method");
}
void defaultMethod() {
System.out.println("default method");
}
private void privateMethod() {
System.out.println("private method");
}
}
// 定义子类
class Child extends Parent {
public void test() {
// 访问父类公共成员
System.out.println(publicField);
publicMethod();
// 访问父类受保护成员
System.out.println(protectedField);
protectedMethod();
// 访问父类默认成员
System.out.println(defaultField);
defaultMethod();
// 访问父类私有成员
// System.out.println(privateField); // 报错:无法访问私有成员
// privateMethod(); // 报错:无法访问私有成员
}
}
在这个例子中,Child 类可以访问 Parent 类的公共和受保护成员,但不能访问私有成员。
注意事项
- 一个类只能继承自一个父类,称为单继承。
- Java 不支持多重继承,但可以通过接口实现类似的效果。
- 在继承关系中,子类可以访问父类的构造方法,但无法直接调用。
- 在继承过程中,应尽量保持子类的封装性,避免直接访问父类的成员变量。
- 在设计继承关系时,应考虑类的职责和功能,避免过度继承。
相信大家对 Java 继承类的基本写法与注意事项有了更深入的了解,在实际开发中,合理运用继承机制,可以提高代码的复用性和可维护性。



















