java学习之路之接口(1)


java学习之路之接口(1)

接口的定义:

如果一个类之中只是抽象方法和全局常量所组成,那么在这种情况下,不会将其定义一个抽象类,而只会将其定义成接口,所谓的接口严格来讲就属于一种特殊的类,而且这个类里面只有抽象方法和全局常量,连构造方法都没有。
要定义一个接口使用interface关键字完成。

范例:

interface A{//定义了一个接口
	public static final String Msg = "hello"; //全局常量
	public void print();
}

由于接口里面存在有抽象方法,所以接口不可能直接使用关键字new 进行实例化。

使用规则:

· 接口必须要有子类,但是此类可以使用implements关键字实现多个接口。
· 接口的子类如果不是抽象的,必须覆写接口中的全部抽象方法。
· 接口的对象可以利用子类的对象向上转型进行实例化操作。

看一个范例:

interface A{ //实现A接口
	public void printA();
}
interface B{//实现B接口
	public void printB();
}

abstract class C{//实现C抽象方法
	abstract void printC(); 
}

class X extends C implements A,B{//先继承抽象方法,后使用接口。
	//抽象方法的覆写。
	public void printA(){
		System.out.println("A");
	}
	public void printB(){
		System.out.println("B");
	}
	public void printC(){
		System.out.println("C");
	}
}

public class Demo1 {
	public static void main(String[] args) {
		X x = new X();
		x.printA();
		x.printB();
		x.printC();
	}

}

· 接口里面没有写上public ,最终的访问权限就是 public, 而不是default, 但是最好还是加上public。

· 一个抽象类可以继承一个抽象类,但是一个借口可以使用extends继承多个接口(但是接口不能继承抽象类)。

接口继承范例:

interface A{ //实现A接口
	public void printA();
}
interface B{//实现B接口
	public void printB();
}

interface C extends A,B{
	public void printC();
}

在整个java里面,接口的主要功能就是解决单继承局限问题。

内部接口范例:

interface A{ //实现A接口
	public void printA();
	abstract class B{ //接口A内部的抽象类B
		public abstract void printB(); 
	}
}

class C implements A{ //C实现了A接口
	public void printA(){ 
		System.out.println("hello world!");
	}
	class X extends B{ // 内部抽象类的子类
		public void printB() {}
	}
}

外部接口范例: 

使用static修饰的接口。
interface A{ //实现A接口
	public void printA();
	static interface B{ // 外部接口
		public void printB();
	}
}
class C implements A.B{
	public void printB(){}
}

-----Over
 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值