11. 接口的特征和接口的实用意义

接口的特征和接口的实用意义

接口的特征

1. 接口的传递性

package com.bjsxt.interfacepro;

public interface InterfaceA {
	public void show();
}
interface InterfaceB extends InterfaceA{
}
interface InterfaceC extends InterfaceB{
}
class Impl implements InterfaceC{
	@Override
	public void show() {
		// TODO Auto-generated method stub
	}
}

2. 接口的继承性(多继承)

package com.bjsxt.interfacepro;

public interface InterfaceA {
	public void show();
}
interface InterfaceB {
}
interface InterfaceC extends InterfaceB,InterfaceA{
}
class Impl implements InterfaceC{
	@Override
	public void show() {
		// TODO Auto-generated method stub
	}
}

接口与接口之间用英文半角逗号

使用接口的意义

可以实现设计与现实的分离,抽象出N多不同类的共同点

举例:飞机,鸟,球,导弹,宇宙飞船。。。

继承:is - a 的关系 三角形 is a 几何图形,鸟is a 球?不成立

接口:has- a关系 手机has a 拍照的功能

飞机 has a 飞行的能力

鸟 has a 飞行的能力

接口体现的是一种能力

package sxt.bjsxt.interfacedemo;

public interface Fly {
	public void flying();//飞行的能力
}
class AirPlane implements Fly{
	@Override
	public void flying() {
		System.out.println("飞机在祖国的蓝天上自由飞翔");
	}
}
class Bird implements Fly{
	@Override
	public void flying() {
		System.out.println("小鸟唱着动听的歌,在天空中飞...");
	}
}
class FootBall implements Fly{
	@Override
	public void flying() {
		System.out.println("球被踢了一脚,画了个美丽的弧线飞到了对方的球门");
	}
}
package sxt.bjsxt.interfacedemo;

public class Test {
	public static void main(String[] args) {
		//接口类型(引用数据类型)指向实现类对象
		Fly airplane = new AirPlane();
		Fly bird = new Bird();
		Fly football = new FootBall();
		//调用相同的方法
		airplane.flying();
		bird.flying();
		football.flying();
		//运行结果,不相同
	}
}

实现效果:

[外链图片转存失败(img-XoyXM8SU-1563198132060)(C:\Users\车闻达\Desktop\TIM截图20190715114133.png)]

总结

使用接口实现多态的步骤

  1. 编写接口
  2. 实现类实现接口中的方法
  3. 接口(类型)new 实现类对象

[外链图片转存中…(img-XoyXM8SU-1563198132060)]

总结

使用接口实现多态的步骤

  1. 编写接口
  2. 实现类实现接口中的方法
  3. 接口(类型)new 实现类对象

面向接口的编程

你可能感兴趣的:(Java)