目录
1. 继承的基本概念
2. 类的继承格式
3. 为什么需要继承?
4. 继承的类型和特性
super与this关键字
final关键字
5. 构造器与继承
6. 示例
7. 总结
1. 继承的基本概念
在Java中,继承是面向对象编程的核心之一,它允许我们通过已存在的类来创建新类,实现代码的重用。继承可以使子类具有父类的属性和方法,通过这种方式,子类可以扩展父类的功能。
继承的本质是“is-a”的关系,例如,企鹅和老鼠都是动物,它们可以继承动物类的特性。这种机制不仅减少了代码的重复性,还提高了代码的维护性。
2. 类的继承格式
在Java中,使用extends
关键字来表明一个类继承自另一个类。以下是一个基本的继承示例:
class Animal {
}
class Penguin extends Animal {
}
3. 为什么需要继承?
继承主要解决代码复用和可维护性问题。例如,企鹅和老鼠类在没有继承之前,它们都有相同的字段和方法,通过继承一个公共父类,可以将共同的部分抽象出来,避免重复代码,如下所示:
class Animal {
private String name;
private int id;
public Animal(String myName, int myid) {
name = myName;
id = myid;
}
public void eat() {
System.out.println(name + "正在吃");
}
public void sleep() {
System.out.println(name + "正在睡");
}
public void introduction() {
System.out.println("大家好!我是" + id + "号" + name + ".");
}
}
class Penguin extends Animal {
public Penguin(String myName, int myid) {
super(myName, myid);
}
}
class Mouse extends Animal {
public Mouse(String myName, int myid) {
super(myName, myid);
}
}
4. 继承的类型和特性
Java支持单继承,不支持多继承,但可以通过接口实现多重继承的效果。子类可以继承父类的所有非private
成员(属性和方法)。
super与this关键字
-
super
关键字用于子类访问父类的属性和方法。 -
this
关键字用于指向当前对象的引用。
final关键字
使用final
关键字可以将类、方法或变量标记为“最终”的,即不能被继承、修改或重写。
5. 构造器与继承
在Java中,子类不能继承父类的构造器(构造方法)。如果父类的构造器不是无参构造器,则必须在子类的构造器中使用super
来显式调用父类的构造器。
6. 示例
以下示例展示了继承的使用:
class SuperClass {
private int n;
SuperClass() {
System.out.println("SuperClass()");
}
SuperClass(int n) {
System.out.println("SuperClass(int n)");
this.n = n;
}
}
class SubClass extends SuperClass {
private int n;
SubClass() {
System.out.println("SubClass");
}
SubClass(int n) {
super(300);
System.out.println("SubClass(int n):" + n);
this.n = n;
}
}
public class TestSuperSub {
public static void main(String[] args) {
SubClass sc1 = new SubClass();
SubClass sc2 = new SubClass(100);
}
}
7. 总结
Java的继承是面向对象编程的强大工具,它帮助我们构建更复杂的系统,同时保持代码的简洁性和可维护性。通过合理使用继承,可以提高开发效率和代码质量。