(java面向对象)接口(interface)

Preface:

接口:

在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法

接口特性、与抽象类:

接口特性:(接口比抽象类更抽象,但具有抽象类的性质)
接口不可以被实例化(常作为类型使用)
实现类必须实现接口的所有方法
实现类可以实现多个接口(Java中的多继承)
   implements、多个接口使用逗号隔开
   E extends D implements A,B,C
接口中的变量都是静态常量(public static final),必须显式初始化
提供某种功能,但不具体实现(必须抽象)
接口中的方法
默认都是public abstract 的
除了成员变量和方法,不能包含其他

接口没有构造方法,不能被实例化

一个接口不能实现另一个接口,但可以继承多个其他接口
一个类必须实现接口抽象方法(implements)除非这个类也是抽象的

接口是一种能力
体现在接口的方法上
可能多个能力,也可能不同类同样能力

Example:

两种门及它们的开关、上锁开锁功能实现:

package door;

public abstract class Door {//门的通用功能
	
	public abstract void open();
	
	public abstract void close();
		
}
package door;

public interface Lock {//锁为一个接口(reason?)
	public void locked();
	public void unlocked();
}
package door;

public class Normal extends Door{//child class:普通门
	
	@Override
	public void open(){
		System.out.println("The door is opened");
	}
	@Override
	public void close(){
		System.out.println("The door is closed");
	}
}
package door;

public class Security extends Door{//child class:防盗门
	
	public void open(){
		System.out.println("The door is opened");
	}
	public void close(){
		System.out.println("The door is closed");
	}
	public void locked(){
		System.out.println("Turned closewise three times,locked");
	}
	public void unlocked(){
		System.out.println("Turned anticlosewise three times,unlocked");
	}
}
package door;

public class TestDoor {//测试

public static void main(String[] args){
	System.out.println("Normal:");
	Door door=new Normal();
	door.open();
	door.close();
	
	System.out.println("Security:");
	Security sec=new Security();
	sec.close();
	sec.locked();
	
	sec.unlocked();
	sec.open();
}
}

总结:

接口与类相似点:

  • 一个接口可以有多个方法
  • 接口文件保存在.java结尾的文件中,文件名使用接口名
  • 接口的字节码文件保存在.class结尾的文件中
  • 接口相应的字节码文件必须在与包名称相匹配的目录结构中

接口与类的区别:

  • 接口不能用于实例化对象
  • 接口没有构造方法
  • 接口中所有的方法必须是抽象方法
  • 接口不能包含成员变量,除了static和final变量
  • 接口不是被类继承了,而是要被类实现
  • 接口支持多重继承

引用:

[1] haiguiking 创建.Java 接口[OL],youj 最后一次修改 2015-09-20,https://www.w3cschool.cn/java/java-interfaces.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值