接口(学习笔记)

接口interface 是一个特殊的抽象类
1.所有的属性都是公开静态常量
2.所有的方法都是公开抽象方法
3.没有构造方法
属性和方法的修饰符可以不写,默认是public static final(属性)和 public abstract(方法)

子实现类的关键字implements,效果等同于extends,只不过是接口的专用关键字
一个类去实现接口,如果这个类不希望也成为抽象类,就必须实现接口中所有的方法,否则这个类必须是抽象类
子接口也是用extends关键词

1.接口和接口之间可以多继承

interface A{
	void method1();
}

interface B{
	void method2();
}

interface C extends A,B{}

2.一个类在继承另外一个类的同时,还可以实现多个接口。必须先写继承类,再写实现的接口

interface Car{}
interface House{}
class Money{}
class Rmb extends Money implements Car,House{}  //人民币继承钱  实现  车子房子

3.Person p = (Person)Animal 只要两边有一个是接口类型的,这句话就能编译通过

利用接口实现多继承,不会破坏类之间树状关系的简单性
利用接口解耦,实现java的弱耦合性
把标准的使用者和标准的实现者分离

接口的回调
在定义接口之后,先有接口的使用者,后有接口的实现者,使用者通过接口调用实现者中的方法

class TableLamp{
	//直接使用接口Bulb
	public void on(Bulb b){
		b.shine();
	}
}

//接口Bulb
interface Bulb{
	void shine();
}

//子实现类YellowBulb实现接口
class YellowBulb implements Bulb{
	public void shine(){
		System.out.println("发黄光");
	}
}

//子实现类RedBulb实现接口
class RedBulb implements Bulb{
	public void shine(){
		System.out.println("发红光");
	}
}

public class TestTableLamp{
	public static void main(String []args){
		TableLamp tl = new TableLamp(); //创建台灯对象
		YellowBulb yb = new YellowBulb(); //创建YellowBulb对象
		RedBulb rb = new RedBulb(); //创建RedBulb对象
		tl.on(yb);  //发黄光
		tl.on(rb);  //发红光
	}
}

JDK高版本对接口语法升级
(1)JDK8.0版本接口的升级内容
可以定义默认方法

interface DefaultInter{
	default void method(){
		System.out.println("我是接口的默认方法");
	}
}

a.语法:default 返回值类型 方法名(形参列表){}
b.注意:
接口中默认方法中的default不再是访问修饰符,代表此方法可以写方法的实现部分
接口中 默认方法 访问权限public

可以定义静态方法

interface StaticInter{
	static int add(int a,int b){
		return a+b;
	}
}

a.语法:public static 返回值类型 方法名(形参){}
b.注意: 接口中静态方法默认访问权限也是public 可以省略
c.使用:接口名.静态方法名(实参);

(2)JDK9.0版本接口中升级:可以定义私有方法
语法: private 返回值类型 方法名(形参列表){}

接口的分类:
(1)常量接口: 接口中只有公开静态常量,没有定义方法 —>应用不广泛

interface A{
	int A = 10;
}

(2)标记接口: 空接口,接口中没有定义任何的常量和方法,例如IO对象序列化

 interface B{}

(3)普通接口: 定义至少一个抽象方法 —> 开发广泛应用

interface C{
	int C = 11;
	void method();
	void prime();
}

(4)函数式接口: 是一种特殊的普通接口,接口中只有一个抽象方法,对静态方法和默认方法没有要求

interface D{
	void method();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值