java知了_Java 接口篇

16178def1c7febab30971ad66112b3c2.png为什么使用接口?

问题

要求实现防盗门的功能

分析

门有开和关的功能,锁有上锁和开锁的功能

将门和锁分别定义为抽奖类

那么问题就是防盗门即继承了门的同时又继承了锁,而Java的继承是单继承,接口可多继承。

解决

将门定义为抽奖类,锁定义为接口

防盗门继承门,实现锁的接口

解决了多继承,更好的使用多态

d06fcb18ca98d4604078e3190dd291b6.png什么是接口?

Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现

因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

57e867bfe9b2ded96d9a85d988ed8a78.png如何使用接口?

[ public ]   interface   接口名   [ extends   超接口表 ]   {    接口体   }

接口是一种只由常量定义和抽象方法组成的特殊类。

接口体中的内容是一系列常量的定义和方法的定义,不提供方法的实现(即没有方法体),用分号结尾。

接口的所有变量都默认是final   static属性,所有的方法都是public  adstract属性。

如果一个类要实现某个接口,必须实现接口的所有方法。

c603d04e78d6dd2f56b9a5aa9fabff24.png面向接口编程

定义Door抽象类:具有开门,关门的功能

定义Lock接口:具备上锁,开锁的能力

编写TheftproofDoor类:继承类实现接口

编写测试类:让防盗门关门,上锁,开锁,开门

package javaTest4;

//抽象类 门

abstract class Door{

public abstract void open();

public abstract void close();

}

//接口:锁

interface Lock{

int i=1; //都是静态常量

public void lock(); //都是抽象方法

public void unlock();

}

//接口 照相机

interface Crama{

public void takePhotos();

}

//防盗门类

class FDoor extends Door implements Lock,Crama{

@Override

public void open() {

System.out.println("开门");

}

@Override

public void close() {

System.out.println("关门");

}

@Override

public void lock() {

System.out.println("上锁");

}

@Override

public void unlock() {

System.out.println("开锁");

}

@Override

public void takePhotos() {

System.out.println("开门时,拍照");

}

}

public class test5 {

public static void main(String[] args) {

FDoor fd=new FDoor();

fd.close();

fd.lock();

fd.unlock();

fd.open();

fd.takePhotos();

}

}

c603d04e78d6dd2f56b9a5aa9fabff24.png必须知道的接口特性

接口不可以被实例化,常作为类型使用

接口是一种特殊的抽象类

实现类必须实现接口的所有方法

实现类可以实现多个接口(Java中的多继承)

接口中的变量都是静态常量

接口默认是public

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值