第六章 接口

一、小结

  本章主要讲解了接口,包括接口的简介、定义接口、接口的继承、接口的实现、接口与抽象类、接口的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());

}

}

posted @ 2021-07-14 14:45  千千婕  阅读(343)  评论(0)    收藏  举报