Javaでのextendsキーワードとimplementsキーワードの違い
この投稿では、「Extends」キーワードと「Implements」キーワードの違いを理解します。
拡張
-
これを使用すると、クラスを基本クラスとして使用でき、別のクラスがこの基本クラスを継承します。
-
インターフェイスは、このキーワードを使用して他のインターフェイスを継承することもできます。
-
1つのクラスで拡張できるスーパークラスは1つだけです。
-
1つのインターフェースで任意の数のインターフェースを拡張できます。
-
サブクラス(スーパークラスを拡張する)がスーパークラスのすべてのメソッドをオーバーライドする必要はありません。
以下は、extendsキーワードの例です-
例
class Super { ..... ..... } class Sub extends Super { ..... ..... }
実装
-
このキーワードは、クラスがインターフェースを実装するのに役立ちます。
-
クラスは、ある時点で任意の数のインターフェースを実装できます。
-
クラス(インターフェースを実装する)は、その特定のインターフェースのすべてのメソッドを実装する必要があります。
-
他のインターフェースを実装するために使用することはできません。
以下は、implementsキーワードの例です
例
public interface Animal { } public class Mammal implements Animal { } public class Dog extends Mammal { }
-
Javaでのスレッドとランナブルの違い
新しい実行スレッドを作成するには、2つの方法があります。 1つは、クラスをThreadクラスのサブクラスとして宣言することです。このサブクラスは、Threadクラスのrunメソッドをオーバーライドする必要があります。その後、サブクラスのインスタンスを割り当てて開始できます。 スレッドを作成するもう1つの方法は、Runnableインターフェースを実装するクラスを宣言することです。次に、そのクラスはrunメソッドを実装します。次に、クラスのインスタンスを割り当て、スレッドの作成時に引数として渡して、開始することができます。 すべてのスレッドには、識別のための名前があります。複数のスレッドが同じ
-
抽象クラスとインターフェースの違い
抽象クラスは、デフォルトの動作を実装するインスタンスメソッドを持つことができます。インターフェイスは定数とインスタンスメソッドのみを宣言できますが、デフォルトの動作を実装することはできず、すべてのメソッドは暗黙的に抽象化されています。インターフェースにはすべてのパブリックメンバーがあり、実装はありません。