Java基础 -> interface接口

interface中的成员

jdk7:
全局变量:public static final XX;
抽象方法:public abstract void xx();
jdk8:
静态方法(static) public static void asd(){----};
默认方法(default) public default void asd(){----};//要写default,因为默认为abstract方法。

接口 中的静态方法只能通过接口调用(接口.静态方法()),不能通过new出的对象调用(对象.静态方法())。
接口 中的默认方法可以通过new出的对象调用(对象.静态方法()),不可以(接口.默认方法())。

注:

public和abstract都是可以省略的,不写public也是默认为public和abstract的。
在接口的实现类中(class A implements B)调用默认方法的格式(接口名.super.默认方法())

/**
 * 
 * main方法 
 *
 */
public class Java {
	public static void main(String[] args) {
		int asd = B.FF;//可以直接用(接口名.属性名)
		B.RR = 30;//报错,不可以改变了,是全局常量了
	}
}

/**
 * 
 * @定义接口B
 *
 */
interface B{
		//全局常量
	public static final int FF = 10;
		//可以省略public static final,但是依然是全局常量,只不过可以省略。
	int RR = 20; 

	//抽象类,同理也可以省略public abstract;
	public abstract void aa();
	void bb();
	//注:不可以写构造器,所以不能实例化
}

/**
 * 
 * 
 * 定义 类A 实现接口B
 *
 */
abstract class A implements B{
	
	//接口的类必要重写了接口中所有的抽象方法才可以实例化;
	//如果没有重写全部的抽象类,那么就还是一个抽象类,不能实例化,
	@Override
	public void aa() {
		// TODO Auto-generated method stub
		
	}

//注释了一个抽象类,所以方法声明时要加abstract
//	@Override
//	public void bb() {
//		// TODO Auto-generated method stub
//		
//	}
	
}
**interface可以实现多个接口:**
	格式:class AA extends BB implements CC,EE,FF,DD{}
**interface可以继承多个接口:**
	格式:interface AA extends BB,CC{}


interface可以体现多态性:

它自己不能实例化,只能通过实例化类来调用:

interface A{
	//接口
}
class B implements A{
	//实现接口,可以进行实例化
}
public class V {
	public static void main(String[] args){
		DD dd = new DD();//实例化一个对象,进行你想进行的操作。
		B bb = new B();//实例化接口的类
		
		//调用DD类中的asd方法,参数为一个名为aa的接口,
		//可以用实例化的类bb传入,跟继承相似,体现多态性
		dd.asd(bb);
	}
}
class DD{
		public void asd(A aa){};//想使用一个接口;A aa = new B();
}

链接

Java编程思想—嵌套接口中private接口的理解P186页

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值