第六章 接口
一、小结
本章主要讲解了接口,包括接口的简介、定义接口、接口的继承、接口的实现、接口与抽象类、接口的UML图、接口的回调、接口与多态、接口参数以及面向接口编程。通过对本章的学习,读者应该熟练掌握定义接口、接口的继承与实现、接口与抽象类、接口与多态和面向接口编程,这些是本章的重点内容。
二、测验

只能用public修饰接口

实现一个接口必须实现接口的所有方法,一个类可以实现多个接口,接口间可以有继承关系(extends)



接口可以被实现也可以被继承、多继承,类不能实现多继承,当子类继承父类接口时,子类获得父类的所有方法

三、习题
1、定义接口有什么好处?
接口是一个特殊的抽象类,接口可以解除各个模块之间的耦合性,是多态的一种体现,通过接口可以实现具体的功能,提高工作效率。
2、接口是否可以被继承?
可以
3、接口与抽象类有哪些共同点?
(1)接口与抽象类都不能被实例化,能被其他类实现和继承
(2)接口和抽象类中都可以包含抽象方法,实现接口或继承抽象类的普通子类都必须实现这些抽象方法。
4、 接口与抽象类有哪些差别?
(1)接口中只能包含抽象方法,不能包含普通方法;抽象类中可以包含普通方法。
(2)接口中不能定义静态方法;抽象类中可以定义静态方法。
(3)接口中只能定义静态常量属性,不能定义普通属性;抽象类里可以定义静态常量属性,也可以定义普通属性。
(4)接口不能包含构造器;抽象类可以包含构造器,抽象类里的构造器为了让其子类调用并完成初始化操作。
(5)接口中不能包含初始化块,但抽象类可以包含初始化块。
(6)一个类最多只能有一个直接父类,包括抽象类;但是一个类可以实现多个接口。
5、创建一个汽车接口,接口中要定义汽车应有的属性和行为,然后编写多个汽车接口的实现类,再创建一个主类,在主类中创建sell()销售方法,该方法中包含汽车接口类型的参数。当执行该方法时,应该输出传递给sell()方法的各种汽车对象的价格、颜色、型号等信息。
首先创建接口:
public interface Car {
String getName();
String getColor();
double getPrice();
}
实现接口的类:
public class Audi implements Car{
public String getName() {
return "Q7";//return语句:双引号
}
public String getColor() {
return "魔力黑";
}
public double getPrice() {
return 133.9;
}
}
public class BMW implements Car{
public String getName(){
return "宝马7系";
}
public String getColor(){
return "雪晶白";
}
public double getPrice(){
return 270.35;
}
}
public class FourServiceShop {
public void sellCar(Car car){
System.out.println("您选择的车型是:"+ car.getName()+",车的颜色是:"+car.getColor()+",价格是:"+car.getPrice()+"万元");
}
public static void main(String[] args) {
FourServiceShop car =new FourServiceShop ();
car.sellCar(new BMW());//把创建的类当作接口参数代入
car.sellCar(new Audi());
}
}

浙公网安备 33010602011771号