Java 继承
1. 继承的概念
继承是Java面向对象编程技术的核心特性之一,它允许创建分等级层次的类。通过继承,子类可以继承父类的属性和方法,从而减少代码重复,提高代码复用性。
2. 继承的语法
在Java中,通过extends关键字实现类的继承。基本格式如下
class 父类 {}
class 子类 extends 父类 {}
这种方式使得子类自动拥有父类的非私有属性和方法。
3. 继承的特性
子类拥有父类非 private 的属性、方法:子类可以访问父类中定义的非私有成员。
子类可以拥有自己的属性和方法:子类可以扩展父类,增加新的属性和方法。
子类可以用自己的方式实现父类的方法:子类可以重写父类的方法,实现多态。
Java 的继承是单继承:一个子类只能有一个直接父类,但支持多重继承,即一个类可以继承多个接口。
4. 构造方法
子类对象在实例化时,首先调用父类的构造方法,然后调用自己的构造方法。如果父类没有无参构造,子类需要显式调用父类的有参构造方法,使用super关键字。
5. super 关键字
super关键字用于访问父类的成员,包括构造方法和成员变量。例如:
public class SubClass extends SuperClass {
public SubClass(int n) {
super(300); // 调用父类中带有参数的构造器
System.out.println("SubClass(int n):" + n);
}
}
6. this 关键字
this关键字用于引用当前对象,常用于访问当前类的成员变量或调用当前类的方法。例如:
public class Dog extends Animal {
void bark() {
System.out.println(this.name + "汪汪汪~~~");
}
}
在这个例子中,this.name访问了当前对象的name属性。
7. 继承的示例
以下是一个简单的继承示例,展示了如何通过继承复用代码:
public class Animal {
String name;
int age;
public void eat() {
System.out.println(name + "正在吃饭");
}
public void sleep() {
System.out.println(name + "正在睡觉");
}
}
public class Dog extends Animal {
void bark() {
System.out.println(name + "汪汪汪~~~");
}
}
public class Cat extends Animal {
void mew() {
System.out.println(name + "喵喵喵~~~");
}
}
public class TestExtend {
public static void main(String[] args) {
Dog dog = new Dog();
System.out.println(dog.name);
System.out.println(dog.age);
dog.eat();
dog.sleep();
dog.bark();
}
}