(28)接口
来源:互联网 发布:iphone8销量数据 编辑:程序博客网 时间:2024/06/11 04:04
一、接口初期理解:特殊的抽象类,当抽象类的方法都是抽象的,那么该类可以通过接口的形式来表示
class 用于类
interface用于定义接口
二、接口定义时的格式特点:
1.接口中常见定义:常量,抽象方法
2.接口中的成员都有固定修饰符(可以省略,但是为了理解,全写上)
常量:public static final 常量名大写
方法:public abstract
记住:接口中的成员都是public
三、继承与实现区别
子类继承(extends)父类:继承,指的是子类可以直接用父类的某些成员变量或者成员方法,即使继承抽象类,抽象类中也可以包含非抽象的成员,直接继承过来。
类实现(implements)接口:根据接口的特点,接口中的东西必须是抽象的,必须通过全部复写才能创建实例,更准确来讲,就是必须实现全部。
interface Inter
{
public static final int NUM=3;
public abstract void show();
}
class Test implement Inter
{
通过对接口简单理解:继承。那么抽象方法都会继承到,若不不实现,还是抽象方法,还是抽象类,无法建立对象。
}
总结:
接口:是不可以创建独享的,因为有抽象方法。
需要子类实现,子类对接口中的抽象方法全部覆盖后,子类才可以实例化,否则子类是个抽象类
public abstract class Inter {public static final int NUM=4;public abstract void show();}public class subInter extends Inter { @Override public void show() { // TODO Auto-generated method stub System.out.println("我实现了接口inter哈哈哈哈"); } } public class Demo { public static void main(String[] args) { // TODO Auto-generated method stub subInter si=new subInter(); System.out.println(si.NUM); System.out.println(subInter.NUM);//根据继承思想,静态可用类名访问 System.out.println(Inter.NUM);//常量,根据类的思想,也可以这样写:接口名.常量名 //si.NUM=2;这是错误的,常量不能再赋值 }}
四、接口可以被类多实现,也是对多继承不支持的转换形式。
类为啥能够实现多个接口?之前说过继承只能单继承
举个栗子:
interface Inter
{
public static final int NUM=3;
public abstract void show();
}
interface InterA
{
public abstract void show();
}
class Test implement Inter,InterA
{
public void show(){执行语句}
}
关键在于接口中的方法全是抽象的,没实现,在实现类中实现了这个抽象方法,不存在执行哪个同名函数出现不同结果的问题,不存在二义性,所以支持多实现。五、接口也支持单继承和多继承
interface A
{
public abatract void methodA();
}
interface B extends A
{
public abatract void methodB();
interface C extends B
{
public abatract void methodC();
class D implements C
{
//必须覆盖三个函数
public void methodA(){}
public void methodB(){}
public void methodC(){}
}
①一般的多继承
interface A
{
public abatract void methodA();
}
interface B
{
public abatract void methodB();
interface C extends B,A
{
public abatract void methodC();
class D implements C
{
//必须覆盖三个函数
public void methodA(){}
public void methodB(){}
public void methodC(){}
}
②多继承不能出现二义性interface A
{
public abatract int show();
}
interface B
{
public abatract boolean show();
interface C extends B,A
{
public abatract void methodC();
class D implements C
{
public int show(){}
public boolean show(){}
}
当创建对象d,调用d.show(),不知道返回什么,出现二义性,而且,D中show()方法也不是重载(参数列表不同)
六、接口的特点(就是对以上的总结)
①接口是对外暴露的规则
②接口是程序的功能拓展
③接口可以用来多实现
④类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口
⑤接口与接口之间可以有继承关系
- (28)接口
- 接口(一)什么是接口
- 接口(二)定义接口
- 接口(五)实现接口
- RCA接口(AV接口)
- JAVA提高篇(28)--List接口
- Go语言中接口组合(接口中包含接口)
- HDFS的接口(命令行接口和Java接口)--笔记
- 接口(interface)和接口的注意事项
- 接口(三)定义接口成员
- 接口(八)事件与接口编程
- 接口(十)初始化一个接口实例
- C# 接口(一 接口概述)
- C# 接口(二 定义接口)
- C# 接口(三 定义接口成员)
- C# 接口(四 访问接口)
- C# 接口(五 实现接口)
- C# 接口(六 接口转换)
- poj3321 图+树状数组
- git 配置增强版log
- 二维数组中的查找
- Win7 U盘安装Ubuntu16.04
- mysql中文问题
- (28)接口
- Android分渠道多应用名打包方案
- 1306: 找用户名
- #507. 「LibreOJ NOI Round #1」接竹竿 dp
- SSH连接服务器+让服务器记住密码及IP
- 替换空格
- 用Java代码自动添加按钮
- 判断屏幕有没有设置解锁密码
- 执行Shiro logout后,报如下错误: org.apache.shiro.session.UnknownSessionException: There is no session with id