Java之接口

一种更加特殊的“抽象类”:接口


接口是把隐式公共方法和属性组合起来,以封装特定功能的一个集合。一旦类实现了接口,类就可以支持接口所指定的所有属性和成员。接口定义了某一批类所需要遵循的规范,接口不关心这些类的内部状态数据,也不关心这些类方法里的实现细节,他只规定这批类里必须提供哪些方法。


接口的使用规则:

1.接口的修饰符可以是public或者省略,如果省略了public访问控制符,则默认采用权限访问控制符。

2.一个接口可以有多个直接父接口,但接口只能继承接口,不能继承类。

3.接口里不能包含构造器和初始化块定义。

4.实现接口的类就必须实现接口的所有方法和属性。

5.接口里的成员变量只能是静态final常量,如果不填,系统会自动为这些变量增加static和final修饰符

例如:int max=50;和public static final int max=50结果完全一样

6.接口里的方法只能是抽象方法,类方法或者默认方法。系统会自动为接口里的普通方法增加abstract修饰符。

7.接口里的所有成员都是public访问权限。

8.接口的继承使用extends关键字,类实现接口使用implements关键字


例如:

package lee;

import java.awt.print.Printable;

public interface Output {
	int MAX_CACHE_LINE=50;
	
	void out();
	void getData(String msg);
	
	default void print(String ...msgs){
		for(String msg:msgs){
			System.out.println(msg);
		}
	}
	default void test(){
		System.out.println("默认的test方法");
	}
	
	static String staticTest(){
		return "接口里的类方法";
	}
}

package yeeku;

public class OutputFieldTest {
	public static void main(String[] args){
               //可以调用,证明该成员变量是public修饰的
		System.out.println(interfaceTest.lee.Output.MAX_CACHE_LINE);
                //将引发“为final变量赋值”的异常
		//interfaceTest.lee.Output.MAX_CACHE_LINE=20;
		System.out.println(interfaceTest.lee.Output.staticTest());
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值