implement 和 extends 的区别

news/2024/7/8 5:03:50

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


http://www.niftyadmin.cn/n/3656118.html

相关文章

让Internet Explorer成为你的软件集成平台

让Internet Explorer成为你的软件集成平台(一)最近一段时间,经常与朋友们探讨与浏览器相关的技术问题,多少年来,浏览器的问题一直是软件界的热点,无论是体验、操作习惯、安全,还是技术等问题&am…

@Async 异步不起作用

一、异步接口实现 java中的异步接口实现比较简单,主要有两步: 1、在ContentServiceApplication上添加EnableAsync。2、在需要异步的接口上添加Async接口。 // 第一步EnableAsync public class ContentServiceApplication {public static void main(St…

让Internet Explorer成为你的软件集成平台(二):献给VB Developer

Microsoft Visual Basic 6.0是Microsoft的一个经典作品,尽管争议颇多,个人认为VB6是一个十分优秀的开发工具。做为一款1998年的产品,VB6至今还被许多人所喜爱,笔者就是其中之一。针对COM组件开发,VB6非常方便&#xff…

pom文件 标签详解

<project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd"><!--父项目的坐标。如果…

通用Internet Explorer扩展框架

通用Internet Explorer扩展框架&#xff1a;如图所示&#xff0c;这个框架提供Internet Explorer侧边、底边的一般扩展方案&#xff0c;我们提供两组基于标签的扩展途径。每一个标签用一个简单的XML文件描述&#xff0c;一个典型的描述文件如下所示&#xff1a;BandFile"T…

IDEA设置注释(已亲测)

文章目录一、设置class注释1、打开File and Code Templates2、找到File Header3、添加模版4、效果二、设置function注释1、打开Live Templates2、创建Template Group3、创建Live Template4、编辑variables5、选择应用场景6、效果以下内容基于IDEA 2021.2.2 (Ultimate Edition)版…

TangramLite介绍

经过一段紧张的忙碌&#xff0c;TangramLite的第一个测试版本终于出炉了你可以在https://sourceforge.net/projects/tangramlite中下载源代码&#xff0c;TangramLite最初的定位是给团队里的年轻人提供一个学习Tangram框架开发思路的内部教材&#xff0c;基本工作在2004年8月份…

springboot 热更新、热加载 IDEA

springboot 热部署一、热部署二、IDEA中实现springboot热部署1、pom文件依赖2、project配置文件修改3、IDEA配置修改三、测试验证四、实现原理之前一直在用热部署&#xff0c;但没有总结&#xff0c;网上有很多类似文章&#xff0c;我这里用最简洁的描述总结一下&#xff0c;开…