📜  在Java扩展与实现

📅  最后修改于: 2021-09-10 02:59:36             🧑  作者: Mango

继承是OOP(Object Oriented Programming)的一个重要支柱。这是Java中允许一个类继承另一个类的特性(字段和方法)的机制。有两个主要关键字, “扩展”“实现” ,它们在Java用于继承。在本文中,讨论了扩展和实现之间的区别。

在讨论差异之前,让我们首先了解每个关键字的使用场景。

Extends:在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();
    }
}

实现:在Java,实现关键字用于实现接口。接口是一种特殊类型的类,它实现了完整的抽象并且只包含抽象方法。要访问接口方法,该接口必须由另一个带有 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 {
}

下表解释了扩展和接口之间的区别:

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