在 Java 中扩展与实现
Rupam Yadav
2023年10月12日
为了在 Java 中重用给定父类的属性和行为,我们使用继承的概念,它是面向对象编程语言的重要组成部分。这背后的想法是代码可重用性。implements
和 extends
关键字都用于在 Java 中创建一个具有父类属性的新类。
我们可以使用下表更好地理解 extends
和 implements
关键字。
定义 | 执行 | 类 | 界面 | 方法 | |
---|---|---|---|---|---|
extends |
当子类(子类)extends 基类(父类)时,它允许子类继承基类中定义的代码。 |
一个类可以继承另一个类。一个接口可以使用关键字 extends 继承另一个接口。 |
一个类只能扩展一个类。 | 一个接口可以扩展任意数量的接口。 | 子类扩展父类可能会或可能不会覆盖基类中的所有方法。 |
implements |
implements 关键字用于实现接口。接口包含抽象方法。方法体在实现它的类中定义。 |
使用 implements 关键字,一个类可以实现一个接口。 |
一个类可以实现多个接口。 | 一个接口永远不能实现任何其他接口。 | 实现接口的类必须实现接口中的所有方法。 |
在 Java 中使用 extends
关键字继承类
在下面的代码中,我们有一个 Parent
,它是基类,而 Child
作为子类。Child
类扩展了 Parent
类,这意味着 Child
类现在可以访问 Parent
类中定义的字段和方法。
在我们的 Test
类中,我们创建了一个子类 child
的对象,并在其上调用方法 displayNumber()
。方法 displayString()
,在父类中定义,可以通过在同一个 child
对象上调用它来执行。因此,它实现了代码可重用性的目的。
public class Test {
public static void main(String args[]) {
Child child = new Child();
System.out.println("Calling Child class method : " + child.displayNumber());
System.out.println("Calling Parent class method from child : " + child.displayString());
}
}
class Parent {
String str = "Hello there!";
public String displayString() {
return str;
}
}
class Child extends Parent {
int number = 25;
public int displayNumber() {
return number;
}
}
输出:
Calling Child class method : 25
Calling Parent class method from child : Hello there!
在 Java 中使用 implements
关键字继承接口
我们有两个接口,Cat
和 Dog
,在下面的代码中,每个接口都包含一个抽象方法。类 Animals
实现了两个接口,因此它必须实现接口中定义的方法。
因此,Animals
类实现了两个接口并定义了它们的行为,这就是 Java 中接口的全部目的。
interface Cat {
public void meow();
}
interface Dog {
public void bark();
}
class Animals implements Dog, Cat {
@Override
public void meow() {
System.out.println("Cat meows");
}
@Override
public void bark() {
System.out.println("Dog barks");
}
}
public class Test1 {
public static void main(String args[]) {
Animals animals = new Animals();
animals.bark();
animals.meow();
}
}
输出:
Dog barks
Cat meows
作者: Rupam Yadav
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn