implement 和 extends 的区别

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时进行重载。

  • 5
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值