继承是OOP(面向对象编程)的重要支柱。这是Java中允许一种类继承另一种类的功能(字段和方法)的机制。 Java有两个主要关键字,即“ extends”和“ implements” ,用于继承。本文讨论了扩展和实现之间的区别。
在深入探讨差异之前,让我们首先了解在哪些情况下使用了每个关键字。
扩展:在Java, extends关键字用于指示正在定义的类是使用继承从基类派生的。因此,基本上,extends关键字用于将父类的功能扩展到子类。在Java,由于含糊不清,不允许多重继承。因此,一类只能扩展一个类以避免歧义。
例子:
class One {
public void methodOne()
{
// Some Functionality
}
}
class Two extends One {
public static void main(String args[])
{
Two t = new Two();
// Calls the method one
// of the above class
t.methodOne();
}
}
Implements:在Java, Implements关键字用于实现接口。接口是一种特殊的类,它实现完整的抽象,并且仅包含抽象方法。要访问接口方法,该接口必须由另一个使用Implements关键字的类“实现”,并且方法必须在继承接口属性的类中实现。由于接口没有方法的实现,因此一个类一次可以实现任意数量的接口。
例子
// Defining an interface
interface One {
public void methodOne();
}
// Defining the second interface
interface Two {
public void methodTwo();
}
// Implementing the two interfaces
class Three implements One, Two {
public void methodOne()
{
// Implementation of the method
}
public void methodTwo()
{
// Implementation of the method
}
}
注意:一个类可以扩展一个类,并且可以同时实现任意数量的接口。
例子
// Defining the interface
interface One {
// Abstract method
void methodOne();
}
// Defining a class
class Two {
// Defining a method
public void methodTwo()
{
}
}
// Class which extends the class Two
// and implements the interface One
class Three extends Two implements One {
public void methodOne()
{
// Implementation of the method
}
}
注意:一个接口可以一次扩展任意数量的接口。
例子:
// Defining the interface One
interface One {
void methodOne();
}
// Defining the interface Two
interface Two {
void methodTwo();
}
// Interface extending both the
// defined interfaces
interface Three extends One, Two {
}
下表说明了extends和interface之间的区别:
S.No. | Extends | Implements |
---|---|---|
1. | By using “extends” keyword a class can inherit another class, or an interface can inherit other interfaces | By using “implements” keyword a class can implement an interface |
2. | It is not compulsory that subclass that extends a superclass override all the methods in a superclass. | It is compulsory that class implementing an interface has to implement all the methods of that interface. |
3. | Only one superclass can be extended by a class. | A class can implement any number of an interface at a time |
4. | Any number of interfaces can be extended by interface. | An interface can never implement any other interface |