在JAVA中,派生和继承是面向对象编程(Object-Oriented Programming, OOP)中非常重要的概念。派生指的是基于已有的类创建一个新的类,这个新类被称为派生类或子类。而继承则是子类继承父类的属性和方法,从而使子类具有与父类相同的特性。下面我们详细讨论一下这两种概念。
public class Parent { public void print() { System.out.println("I'm a parent."); } } public class Child extends Parent { public void print() { System.out.println("I'm a child."); } }
在上面的代码中,我们创建了一个名为Parent的类和一个名为Child的类。Child类通过关键字“extends”继承了Parent类。这意味着Child类将继承Parent类的所有方法。同时,Child类可以通过添加新的属性和方法来扩展父类的功能。在Child类的print()方法中,我们重写了父类的print()方法,使该方法输出“I'm a child.”
当我们实例化Child类时,我们可以调用其自己的print()方法,而不是父类的print()方法:
Child c = new Child(); c.print(); // 输出:I'm a child.
派生类也可以通过super关键字调用父类的方法:
public class Child extends Parent { public void print() { super.print(); // 调用父类的print()方法 System.out.println("I'm a child."); } }
当我们实例化Child类并调用其print()方法时,该方法将先调用父类的print()方法,然后输出“I'm a child.”:
Child c = new Child(); c.print(); // 输出:I'm a parent. \n I'm a child.
在派生和继承中,有几个需要注意的地方。首先,Java不支持多重继承。这意味着一个类只能继承一个父类。其次,在Java中,所有类都是Object类的子类。因此,所有类都继承了Object类的属性和方法。
派生和继承让我们可以避免重复编写代码。我们可以在父类中定义共同的属性和方法,然后在子类中基于需要进行扩展,从而节省了时间和代码量。当我们需要更新共同的代码时,只需更新父类即可。