admin管理员组

文章数量:1636810

extends:拓展; 扩大范围

implement:使生效 ; 贯彻 ; 执行


重点:

  • extends 用在同类之间。比如:classC 继承 classA,interFaceC 实现 interFaceA。
  • implement 用在非同类之间。比如:classC 实现 interFaceA的功能。
  • extends 用在类中表示继承时只能单继承,java不允许多重继承。比如:classC 继承 classA时,只能继承这一个class类。
  • implement 在实现接口类时,可以同时实现多个接口类(变相多重继承)。比如: classC 可以同时显现 interFaceA、interFaceB的接口。
  • extends 用在接口类中表示实现时,可以继承多个接口类,且不用重载接口类中的function。

举例如下:

// 错误写法,不允许多重继承
public class classC extends classA, classB {
}

// 正确写法
public class classC extends classA {
}

public interface interFaceB extends interFaceA {
    void functionB();
}

extends 可以用在class中表示继承,此时只能单继承,java不允许多重继承。
extends 也可以用在interface中表示继承,此时不用重载父类的function。

// implement 用在`非同类`之间,表示实现时,下面两种方法都可以
public class classC implements interFaceA, interFaceB {

    @Override
    public void functionA() {

    }

    @Override
    public void functionB() {

    }
}

public class classC implements interFaceA {

    @Override
    public void functionA() {

    }
}

implements 用在非同类中表示实现时,可以同时实现多个接口类,需要对接口类中的function进行重载。

public interface interFaceA {
    void functionA();
}

public interface interFaceB {
    void functionB();
}

// extends 在interface中表示继承时,可以不对functionA、functionB进行实现
public interface interFaceC extends interFaceA, interFaceB {
    void funtionC();
}

// classC 在实现interFaceC接口时,需要把所有的interFaceC继承的functionA、functionB实现
public class classC implements interFaceC {

    @Override
    public void functionA() {

    }

    @Override
    public void funtionC() {

    }

    @Override
    public void functionB() {

    }
}

extends 在interface中表示继承时,可以不对父类的function进行实现,而是等待其他class类继承该interface时进行重载。

本文标签: 区别implementextends