Java 接口

接口

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

Java接口的方法只能是抽象的和公开的,Java接口不能有构造器,Java接口可以有public、static和final属性。

接口把方法的特征和方法的实现分割开来。这种分割体现在接口常常代表一个角色,它包装与该角色相关的操作和属性,而实现这个接口的类便是扮演这个角色的演员。一个角色由不同的演员来演,而不同的演员之间除了扮演一个共同的角色之外,并不要求其它的共同之处。

Java接口和Java抽象类最大的一个区别,就在于Java抽象类可以提供某些方法的部分实现,而Java接口不可以,这大概就是Java抽象类唯一的优点吧,但这个优点非常有用。如果向一个抽象类里加入一个新的具体方法时,那么它所有的子类都一下子都得到了这个新方法,而Java接口做不到这一点,如果向一个Java接口里加入一个新方法,所有实现这个接口的类就无法成功通过编译了,因为你必须让每一个类都再实现这个方法才行,这显然是Java接口的缺点。

一个抽象类的实现只能由这个抽象类的子类给出,也就是说,这个实现处在抽象类所定义出的继承的等级结构中,而由于Java语言的单继承性,所以抽象类作为类型定义工具的效能大打折扣。在这一点上,Java接口的优势就出来了,任何一个实现了一个Java接口所规定的方法的类都可以具有这个接口的类型,而一个类可以实现任意多个Java接口,从而这个类就有了多种类型。
接口代码

package 接口;
public class TheftproofDoor extends Door implements Lock, MenLing{
@Override
 public void lockUP() {
  // TODO Auto-generated method stub
  System.out.println("插进钥匙,向左旋转三圈,锁上了,摆出钥匙");
 }
 @Override
 public void openLock() {
  // TODO Auto-generated method stub
  System.out.println("插进钥匙,向右旋转三圈,锁开了,摆出钥匙");
 }
 @Override
 public void open() {
  // TODO Auto-generated method stub
  System.out.println("门开了");
 }
 @Override
 public void close() {
  // TODO Auto-generated method stub
  System.out.println("门关了");
 }
 @Override
 public void takePictrue() {
  // TODO Auto-generated method stub
  System.out.println("玲。。。。咔嚓 。。。照片以存储");
 }
 }
package 接口;
public abstract class Door {
 public abstract void open();
 public abstract void close();
}
package 接口;
public interface Lock {
 void lockUP();//上锁
 void openLock();//开锁
}
package 接口;
public interface MenLing {
 void takePictrue();
}
package 接口;
public class Test {
public static void main(String[] args) {
  // TODO Auto-generated method stub
  TheftproofDoor td=new TheftproofDoor();
  td.close();
  td.lockUP();
  td.takePictrue();
  td.openLock();
  td.open();
 }
 }

以上代码运行结果:
门关了
插进钥匙,向左旋转三圈,锁上了,摆出钥匙
玲。。。。咔嚓 。。。照片以存储
插进钥匙,向右旋转三圈,锁开了,摆出钥匙
门开了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

~plus~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值