Java接口和接口继承
1、接口
在抽象类中,抽象方法本质上是定义接口规范,即规定高层类的接口,从而保证所有子类都有相同的接口实现,这样,多态就能发挥出威力。
如果一个抽象类没有字段,所有方法全部都是抽象方法,就可以把该抽象类改写为接口(interface)。在Java中使用interface可以声明一个接口:
// 抽象类Person
abstract class Person {public abstract void run();public abstract String getName();
}
// 将抽象类改写成接口
interface Person {void run();String getName();
}
(1)接口(interface)就是比抽象类还要抽象的纯抽象接口,因为它连字段都不能有。
(2)接口定义的所有方法默认都是public abstract的,所以这两个修饰符不需要写出来,写不写效果都一样。
(3)接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明抽象类。
(4)接口的所有方法都是抽象方法,接口不能定义实例字段。
当一个具体的class去实现一个interface时,需要使用implement关键字。
注:implement [ˈɪmplɪment] n.工具,器具。interface [ˈɪntəfeɪs] n.界面,接口。
class Student implements Person { // 使用Student类实现Person接口private String name;public Student(String name) {this.name = name; }@Override // 覆写Person接口run()方法public void run() {System.out.println(this.name + " run"); }@Override // 覆写Person接口getName()方法public String getName() {return this.name; }
}
在Java中,一个类只能继承自另一个类,不能从多个类继承。而一个类可以实现多个接口。
class Student implements Person, Hello { //实现了两个接口Person和Hello... ...
}
(1)default方法
在接口中,可以定义default方法,将Person接口的run()方法改为default方法:
interface Person {void run();String getName();
}
// 将run()方法改为default方法
interface Person {String getName();default void run() {System.out.println(getName() + " run");}
}
实现类可以不必覆写default方法。default方法的目的是,当需要给接口新增一个方法时,会涉及到修改全部子类。如果新增的是default方法,那么子类就不必全部修改,只需要在需要覆写的地方才去覆写新增方法。
default方法和抽象类的普通方法是有所不同的,因为interface没有字段,default方法无法访问字段,而抽象类的普通方法可以访问实例字段。
2、接口继承
一个interface可以继承另一个interface,interface继承自interface使用extends,它相当于扩展了接口的方法。
interface Hello { // 定义Hello接口void hello();
}interface Person extends Hello { // Person接口继承Hello接口// Person接口实际上有3个抽象方法签名,其中一个来自继承Hello接口void run();String getName();
}
3、抽象类和接口区别
Java的接口特指interface的定义,表示一个接口类型和一组方法签名。而编程接口泛指接口规范,如:方法签名,数据格式,网络接口等
抽象类和接口区别:
抽象类(abstract class):
继承:只能extends一个class
字段:可以定义实例字段
抽象方法:可以定义抽象方法
非抽象方法:可以定义非抽象方法
接口(interface):
继承:可以implements多个interface
字段:不能定义实例字段
抽象方法:可以定义抽象方法
非抽象方法:可以定义default方法
Java接口和接口继承相关推荐
- Java中实现接口与继承的区别
** Java中实现接口与继承的区别 ** 首先,先来了解一下什么是接口和继承.接口一般是使用interface来定义的.接口定义同类的定义类似,分为接口的声明和接口体,其中接口体由常量定义和方法定义 ...
- JAVA常用基础知识点[继承,抽象,接口,静态,枚举,反射,泛型,多线程...]
类的继承 Java只支持单继承,不允许多重继承 - 一个子类只能有一个父类 - 一个父类可以派生出多个子类 这里写图片描述 子类继承了父类,就继承了父类的方法和属性. 在子类中,可以使用父类中定义的方 ...
- java 接口 实现和继承关系
一.抽象类 有时候,我们可能想要构造一个很抽象的父类对象,它可能仅仅代表一个分类或抽象概念,它的实例没有任何意义,因此不希望它能被实例化.例如:有一个父类"水果(Fruit)",它 ...
- Java中接口的多继承
我们知道Java的类只能继承一个类,但可以实现多个接口.但是你知道么?Java中的接口却可以继承多个接口.本文就来说一说Java中接口的多继承. 进入主题之前,先扩展一下.Java为什么只支持单继承呢 ...
- java 接口可以多继承
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 接口是常量值和方法定义的集合.接口是一种特殊的抽象类. java类是单继承的.classB Exte ...
- java接口中多继承的问题
java中支撑多继承吗? 支持->接口啊 为什么接口支持多继承呢?因为接口中没有方法体!即使可能两个接口中有一样的抽象方法,但是 只会调用子类中覆盖该同样抽象方法的具体方法!不会引起调用的歧义! ...
- [转载] Java获取一个类继承的父类或者实现的接口的泛型参数
参考链接: Java中的接口和继承 泛型的作用就不多介绍了,如果你想具备架构设计能力,那么熟练使用泛型是必不可少的. 不多说了,先定义泛型父类和泛型接口: package cn.zhh; public ...
- java 由接口构造对象_Java学习笔记04——类和对象|抽象和接口|构造方法与继承...
六.Java类 1. Java中用关键字class来创建类. 2. 类中属性和方法称为类的成员;类的声明和方法要在同一个文件内,不同于C++. 3. 类的定义: [] class [extend ...
- java中什么是继承,和继承的接口的关系?
继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父 ...
- Java接口及接口继承
Java接口 开发工具与关键技术:My Eclipse 10.Java 作者:郑凯丰 撰写时间: 2019年5月2日 修饰符 :public .abstract [修饰符] interface 接口名 ...
最新文章
- SAP MM 事务代码RWBE查询库存
- 关于ssh远程登录时出现问题的解决方法
- vba和python哪个好学-python和vba学哪个
- studio-引入外来包
- 8086指令(II)
- [android] listview入门
- ora-00923数据类型不一致_小白学 Python(2):基础数据类型(上)
- 基于Weblogic的JNDI数据库连接调优项
- document 对象 html文档内容
- 知行动手实验室可以用来做什么?
- 一文快速探索视频用户网络画像与应用
- SOA进入成熟应用阶段仍需时日
- RPM软件包管理(安装、卸载、查询、制作)
- Linux 系统查看网卡配置信息
- c语言第一章复习思维导图
- 悟空遥控器 android 5.1,悟空遥控器服务端
- Linux的常见问题解答和管理技巧
- Opencv实现颜色检测
- php怎么控制mp3播放器,简单的C++ MP3播放器类
- [python] 使用Jieba工具中文分词及文本聚类概念