Java中的扩展(Extends)与实现(Implements)的区别

Java中的扩展(Extends)与实现(Implements)的区别

继承是面向对象编程的重要支柱。它是Java中的一种机制,通过这种机制,一个类可以继承另一个类的特性(字段和方法)。主要有两个关键词, “extends” and “implements” 在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();
    }
}

实现(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之间的区别:

编号 Extends Implements
1. 通过使用” extends “关键字,一个类可以继承另一个类,或者一个接口可以继承其他接口 通过使用implements关键字,类可以实现一个接口
2. 继承超类的子类并不一定要重写超类中的所有方法。 实现接口的类必须实现该接口的所有方法,这是强制性的。
3. 一个类只能扩展一个超类。 一个类一次可以实现任意数量的接口
4. 可以通过接口扩展任意数量的接口。 一个接口永远不能实现其他任何接口

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程