implements和extends的区别

extends可以理解为全盘继承了父类的功能
implements可以理解为为这个类附加一些额外的功能
举个例子,Animal是一个父类,cat,dog,bird,insect都extends了Animal,
但是cat,dog,bird还可以implements比如run,shout这些interface,bird,insect可以implements比如fly这些interface

extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,JAVA中不支持多重继承,但是可以用接口来实现,extends只能继承一个类,implements可以实现多个接口
比如 class A extends B implements C,D,E 
interface定义一些方法,并没有实现,需要implements来实现才可用

对于class而言,extends用于(单)继承一个类(class),而implements用于实现一个接口(interface)。

interface的引入是为了部分地提供多继承的功能。 在interface中只需声明方法头,而将方法体留给实现的class来做。 这些实现的class的实例完全可以当作interface的实例来对待。 在interface之间也可以声明为extends(多继承)的关系。 注意一个interface可以extends多个其他interface。

时间: 2024-09-30 16:33:37

implements和extends的区别的相关文章

秋招之路2: implements 与 extends ,抽象类总结

extends[继承类]的特点 子类拥有父类的非private属性,方法. 子类可以拥有自己的属性和方法,子类可以对父类进行扩展. 子类可以用自己的方式实现父类的方法. 减少了代码的冗余,即相同重复的代码可以放在父类里面,各自子类有不同的实现. 相关关键字 super:引用父类成员变量.局部变量.方法. this:引用本类成员变量,方法. 需要注意的是:类的成员变量与局部变量重名,类的成员变量将被隐藏,如果要使用类的成员变量,需要使用this引用之. implements[实现接口]的特点 1.

java中implements和extends的使用小结

1 interface InterfaceOne 2 { 3 void sayHello(); 4 } 5 /*接口之间要用extends关键字 6 interface InterfaceTwo implements interfaceOne 7 { 8 9 }*/ 10 interface InterfaceThree extends InterfaceOne 11 { 12 } 13 //抽象类可以不用实现接口或父抽象类的方法. 14 abstract class AbstractClass

?super T 和? extends T区别

Java 泛型 关键字说明 ? 通配符类型 <? extends T> 表示类型的上界,表示参数化类型的可能是T 或是 T的子类 <? super T> 表示类型下界(Java Core中叫超类型限定),表示参数化类型是此类型的超类型(父类型),直至Object extends 示例 static class Food{} static class Fruit extends Food{} static class Apple extends Fruit{} static clas

Java 范型中的super和extends的区别

其实一句话就是: super最好用来作为输出参数,extends最好用来作为输入参数: 看看下面的例子: private class A { // } private class B extends A { // } private class C extends B { // } public void test() { List<? super B> test = new ArrayList(); test = new ArrayList<A>(); test = new Ar

java里面interface,implement和extends的作用和用法

今天阅读<设计模式示例>,看到一段代码涉及到了interface,implements和extends,其实在C++中经常用到.今天特百度,比较了一下: interface是一个接口,类似于C++中的纯虚函数.举个简单的例子,有一类东西,都具有同样的行为,而这个共有的行为实现方式不一样.如:笔这类东西,都有共同的行为“写”,铅笔.毛笔.圆珠笔.钢笔都有“写”的功能,但实现起来不一样.那么我们就可以抽象出一个接口“笔”interface 笔{void 写();}implement的意思是指在铅笔

抽象类和接口的区别面试答案,很全面

最近在面试过程中,遇到许多抽象类和接口的面试题,所以今天特意研究了下,然后写出来分享给大家,希望对面试的朋友有帮助,如果觉得写的可以点个赞吧! 1:抽象类可以实例化,抽象类可以通过子类间接的实例化父类,接口不能实例化. 2:抽象类可以拥有私有属性.方法,接口不能拥有. 3:抽象类方法不能使用default关键字 修饰,接口方法可以. 3:抽象类只能被extends不能被implements,接口可以被implements和extends 5:接口没有构造方法,抽象方法有 6:接口不占用堆空间,抽

&#39;Interface&#39; Considered Harmful -- 接口被认为是有害的

What do you think of interfaces? 对于接口,你怎么看? You mean a Java or C# interface? 你是说Java或者C#的接口吗? Yes, are interfaces a good language feature? 是的,接口是一种好的语言特性吗? Of course, they're great! 当然了,接口非常棒! Really. Hmmm. What is an interface? Is it a class? 真的.那什么

04-java学习笔记-多线程1

1.多线程概述 进程:是一个正在执行中的程序. 每一个进程都有一个执行单元.该顺序是一个执行路径,或者叫一个控制单元. 线程:就是进程中的一个独立的控制单元. 线程在控制着进程的执行. 一个进程中至少有一个线程. Java VM  启动的时候会有一个进程 java.exe 该进程中至少一个线程负责java程序的执行. 而且这个线程运行的代码存在于main方法中. 该线程称之为主线程. 扩展:其实更细节说明jvm, jvm启动不止一个线程,还有负责垃圾回收机制的线程. 2.创建线程-继承Threa

Java高级复习㈠ 多线程

1.线程 也称为轻量级进程,每个线程有自己的堆栈.程序计数器.局部变量.与进程相比,进程中的线程之间隔离程度要小 2.Java实现 ①implements Runnable ②extends Thread 一般推荐① 3.sleep().yield() sleep()方法对当前线程操作,指定以毫秒为单位的线程最小休眠时间,除非线程因中断提早恢复执行,否则不会在这段时间前恢复执行.线程可调用另一线程的interrupt()方法,向暂停的线程发出InterruptedException,变相唤醒暂停