实验时间:2019.4.15
必做
测试接口的用法:
创建一个Vehicle接口,在接口中定义2个抽象方法:启动start()和刹车stop()。
定义两个类Car和Bike,实现Vehicle接口,并具体实现接口start()和stop()方法 。
创建另一个类Test_Vehicle,在main主方法中分别通过使用Vehicle接口创建关于Car 与Bike类的引用对象audi与yongjiu。
使用接口Vehicle的两个引用对象分别调用各自的启动start()与刹车stop(),显示不同运输工具的多态性。
源码:
Vehicle.java
package ex05;
//新建交通工具接口
public interface Vehicle {
//创建抽象方法
void start();
void stop();
}
Car.java
package ex05;
public class Car implements Vehicle {
//对接Vehicle接口
// 实现接口中的抽象方法
public void start() {
System.out.println("汽车启动:转动钥匙,轻踩油门");
}
public void stop() {
System.out.println("汽车刹车:踩刹车");
}
}
Bike.java
package ex05;
public class Bike implements Vehicle {
//创建Bike类对接Vehicle接口
@Override
//实现接口中的抽象方法
public void start() {
System.out.println("自行车启动:一只脚蹬地,另一只脚踩脚踏");
}
@Override
public void stop() {
System.out.println("自行车刹车:手扣刹车");
}
}
Test_Vehicle.java
package ex05;
public class Test_Vehicle {
//创建测试类
public static void main(String[] args) { //程序入口
Vehicle audi = new Car(); // 多态
Vehicle yongjiu = new Bike();
//调用接口中的抽象方法
audi.start();
audi.stop();
yongjiu.start();
yongjiu.stop();
}
}
实验结果:

多态
建立一个抽象类Shape,其中包含一个抽象方法draw();
建立两个子类J_Circle和J_Square,继承Shape,分别实现Shape中的抽象方法draw()
建立Test_Shape类,创建一个J_Square类的对象sqare,再创建一个Shape关于J_Circle的引用对象circle;
通过circle对象调用方法draw(),观察如何实现Shape类的多态性。
问题:square对象是否实现多态性?Circle对象是否实现多态性?为什么?
源码:
Shape.java
package ex05;
public abstract class Shape {//创建抽象类
public abstract void draw();//创建抽象方法
}
J_Circle.java
package ex05;
public class J_Circle extends Shape {
public void draw(){//实现父类抽象方法
System.out.println();
}
}
J_Square.java
package ex05;
public class J_Square extends Shape {
public void draw(){//实现父类抽象方法
System.out.println();
}
}
Test_Shape.java
package ex05;
public class Test_Shape {
public static void main(String[] args) {
Shape sqare = new J_Square();//多态
Shape circle = new J_Circle();
circle.draw();
//父类型circle作为引用指向新对象J_Circle()堆内存地址;
}
}
问题:square对象是否实现多态性?Circle对象是否实现多态性?为什么?
答:square与circle对象都可以实现多态性;因为创建了共同的抽象父类,父类中含有二者的共同抽象属性,可通过继承父类实现多态性。
运行结果:

实验总结:
学习了接口的用法,学习了多态的使用。