java中接口的用法

接口(interface)用关键词(implements)来实现
接口interface前面的修饰符public和static可以加也可以不加
接口中的内容:
1、静态常量
2、抽象方法
接口中的变量都相当于静态常量(自动加了static和final)
静态常量默认可以不加static和final
抽象方法默认可以不加public和abstract
接口的特征:
1.接口不能被实例化
2.实现类必须实现接口的所有方法,否则实现类必须是抽象类
3.实现类可以实现多个接口,来弥补java不能多继承
4.接口中的变量都是静态常量
接口是一种规范:
体现在接口名称和注释上
面向接口编程
有些接口只有名称
方法的实现方式要通过注释来约定
面向接口编程:

1.接口可以继承多个接口(extends),
接口不能实现接口(implements)
2.类可以实现多个接口(implements),
只能继承一个父类(extends)
继承是纵向的
Object
||
Father
||
Child
接口是横向的
bird plane superman -->fly()
接口和抽象类的区别:
接口习题案例:

1.接口编程题: 

(1) 所有的可以拨号的设备都应该有拨号功能 (Dailup)

(2) 所有的播放设备都可以有播放功能(Play)。

(3) 所有的照相设备都有拍照功能(takePhoto)。 

(4) 定义一个电话类 Telephone,有拨号功能。 

(5) 定义一个Dvd类有播放功能。 

(6) 定义一个照相机类 Camera, 有照相功能。 

(7) 定义一个手机类 Mobile, 有拨号,拍照,播放功能。 

(8) 定义一个人类 Person, 有如下方法: 

<1> 使用拨号设备 use (拨号设备) 

<2> 使用拍照设备 use(拍照设备) 

<3> 使用播放设备 use(播放设备) 

<4> 使用拨号播放拍照设备 use(拨号播放拍照设备) 

(9) 编写测试类Test 

分别创建人,电话,Dvd,照相机,手机对象,让人使用这些对象。   

Dailup接口
public interface Dailup {

	void dailup();
}
Play接口
public interface Play {

	void play();
}
takePhoto接口
public interface TakePhoto {

	void takephoto();
}
Telephone类
public class Telephone implements Dailup {

	@Override
	public void dailup() {
		// TODO Auto-generated method stub

		System.out.println("电话具有拨号功能");
	}
}
Dvd类
public class Dvd implements Play {

	@Override
	public void play() {
		// TODO Auto-generated method stub

		System.out.println("Dvd具有播放功能");
	}
}
Camera类
public class Camera implements TakePhoto {

	@Override
	public void takephoto() {
		// TODO Auto-generated method stub

		System.out.println("照相机具有照相功能");
	}
}
Mobile类
public class Mobile implements Dailup, Play, TakePhoto {

	@Override
	public void takephoto() {
		// TODO Auto-generated method stub

		System.out.println("手机有拍照功能");
	}

	@Override
	public void play() {
		// TODO Auto-generated method stub

		System.out.println("手机有播放功能");
	}

	@Override
	public void dailup() {
		// TODO Auto-generated method stub

		System.out.println("手机有拨号功能");
	}
}
Person类
public class Person{
	
	public void use(Dailup dailup){
		dailup.dailup();
	}
	
	public void use(Dvd dvd){
		dvd.play();
	}
	
	public void use(TakePhoto takephoto){
		takephoto.takephoto();
	}
	
	public void use(Mobile mobile){
		mobile.dailup();
		mobile.play();
		mobile.takephoto();
	}
}
Test测试类
public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Person1 person = new Person1();
		Telephone phone = new Telephone();
		Dvd dvd = new Dvd();
		Camera camera = new Camera();
		Mobile mobile = new Mobile();
		person.use(phone);
		person.use(dvd);
		person.use(camera);
		person.use(mobile);
	}
}
执行结果:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值