Java继承详解

目录

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的继承是面向对象编程的强大工具,它帮助我们构建更复杂的系统,同时保持代码的简洁性和可维护性。通过合理使用继承,可以提高开发效率和代码质量。

上一篇:TQZC706开发板教程:编译zynq linux内核2019_R1


下一篇:设计模式代码实战-责任链模式