实验10接口
一、 实验目的
1、 理解接口的概念
2、 掌握接口的定义和实现接口的方法
二、 实验题目
一、问答题
1、实现接口的类一定要实现接口的方法吗?实现后的方法属于类还是属于接口?
二、编程题
1、阅读以下代码,完成第2、3题 class Pet {
protected String name;
public Pet(String n) { name = n; }
public String getName() { return name; }
public String move() { return \; }
public String speak() { return \; }
public String toString() { return \ + name; } }
class Dog extends Pet { protected int weight;
public Dog(String s) { super(s); } }
class PetTest {
public static void main(String[] args) { Pet myPet = new Pet(\); Dog myDog = new Dog(\);
System.out.println(myPet.toString() + \ + \ + myPet.speak() + \ + myPet.move() + \\ + myPet.getName() + \); System.out.println(myDog.toString() + \ + \ + myDog.speak() + \ + myDog.move() + \\ + myDog.getName() + \); } }
2、试改写题目1中的Pet类,其中move与speak方法定义为抽象方法。定义一个Pet类的子类Cat类。在Cat类中实现move和Speak方法。其中move方法返回值为“run”,speak方法返回值为“meow meow”。 编写含有main方法的公共类PetTest,在其方法体中创建一个名为myCat的Cat的实例。并依照PetTest类main方法中的相应格式输出结果。
3、如果将题目1中代码的Pet类定义为接口,即所有相应方法全部为抽象方法,则Cat类该如何改动?试改写相关代码,并验证你的结果。
4、根据要求完成程序:
1) 定义名称为PCI()的接口,包括启动的方法start和关闭的方法stop; 2) 定义名称为NetworkCard 的类表示网卡,实现PCI接口,并且其在实现
start方法时输出“sending data……”,在实现stop方法时输出“network stop.”
3) 定义名称为SoundCard 的类表示声卡,实现PCI接口;并且其在实现start
方法时输出“dudu……”,在实现stop方法时输出“sound stop.” 4) 定义名称为MainBoard 的类表示主板,包含方法public void
usePCICard(PCI p),在方法体内通过p来启动和关闭组件; 5) 定义一个包含main方法的Test类,在main方法内创建一个MainBoard 对
象用mb来引用,创建一个NetworkCard对象用nc来引用,创建一个SoundCard对象用sc来引用,分别通过mb来使用usePCICard(PCI p)启动声卡和网卡。