实验五 接口与多态
1 - [OJ2044]接口与多态1
请参照下面的程序框架,完成对应的实验内容。
class Animal{
protected int leg;
//无参构造方法
//带参数构造方法
//空的soundp()方法
}
interface Flyable{
//接口中定义 public int MySpeed()抽象方法
}
//Glede 类继承Animaol 并实现 Flyable接口
class Glede extends ........{
private int speed;
//无参构造方法
//有参构造方法
//重写MySpceed()方法,返回speed属性值。
//重写sound()方法,输出 "嘎......"
//重写toStrring()方法, 输出格式如:Glede:leg=2 speed=20
}
public class Main {
public static void main(String[] args) {
//输入两组leeg和speed数据
//创建Glaede对象数组,包括两个元素。
//打印输出第1个元素
//调用第一个元素的soumnd()方法
//打印输出第2个元素
//调用第2个元素的sound()方法
}
}
import java.util.Scanner;
class Animal{
protected int leg;
//无参构造方法
public Animal(){
leg = 0;
}
//带参数构造方法
public Animal(int leg){
this.leg = leg;
}
//空的sound()方法
public void sound(){
}
}
interface Flyable{
//接口中定义 public int MySpeed()抽象方法
public int MySpeed();
}
//Glede 类继承Animal 并实现 Flyable接口
class Glede extends Animal implements Flyable{
private int speed;
//无参构造方法
public Glede(){
speed = 0;
}
//有参构造方法
public Glede(int leg, int speed){
super(leg);
this.speed = speed;
}
//重写MySpeed()方法,返回speed属性值。
@Override
public int MySpeed(){
return this.speed;
}
//重写sound()方法,输出 "嘎......"
@Override
public void sound(){
System.out.println("嘎......");
}
//重写toString()方法, 输出格式如:Glede:leg=2 speed=20
@Override
public String toString(){
return "Glede:leg=" + leg + " speed=" + speed;
}
}
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int leg1, leg2, speed1, speed2;
//输入两组leg和speed数据
leg1 = input.nextInt();
speed1 = input.nextInt();
leg2 = input.nextInt();
speed2 = input.nextInt();
//创建Glede对象数组,包括两个元素。
Glede[] gledes = new Glede[2];
gledes[0] = new Glede(leg1, speed1);
gledes[1] = new Glede(leg2, speed2);
//打印输出第1个元素
System.out.println(gledes[0]);
//调用第一个元素的sound()方法
gledes[0].sound();
//打印输出第2个元素
System.out.println(gledes[1]);
//调用第2个元素的sound()方法
gledes[1].sound();
}
}
2 - [OJ2045]接口与多态2
参照如下程序框架,完成相应的实验内容。
//定义PCI接口,包含 public void start() ppublic void stop() 两个抽象方法
interface PCI{
}
//定义NetworkCard类实现PCI接口,并实现接口中的方法。
// start()方法输出 "sending data……"
// stop() 方法输出 "netwoork stop"
class NetworkCard ............
{
}
//定义SoundCard类实现PCI接口,并实现接口中的方法。
// start()方法输出 "duduc......"
// stop() 方法输出 "sound stop"
class SoundCard ............
{
}
//定义MainBoard类,并在其中定义 public void userPCICard(PCI p)方法
//在 public void usePCICard(PCI p)中 分别启动start()和stop()方法
class MainBoard{
public void usePCICard(PCI p)
{
.................
}
}
public class Main {
public static void main(String[] args) {
//分别创建NeetworkCard对象、SoundCard对象、MainBoard对象
//用MainBoard对象的usePCICard方法实现网卡、声卡的启动和关闭
/* 输出的信息为:
sending data……
network stop
dudu......
sound stop
*/
}
}
//定义PCI接口,包含 public void start() public voaid stop() 两个抽象方法
interface PCI{
public void start();
public void stop();
}
//定义NetworkCard类实现PCI接口,并实现接口中的方法。
// start()方法输出 "sending data……"
// stop() 方法输出 "network stop"
class NetworkCard implements PCI {
public void start(){
System.out.println("sending data……");
}
public void stop(){
System.out.println("network stop");
}
}
//定义SoundCard类实现PCI接口,并实现接口中的方法。
// start()方法输出 "dudu......"
// stop() 方法输出 "sound stop"
class SoundCard implements PCI {
public void start(){
System.out.println("dudu......");
}
public void stop(){
System.out.println("sound stop");
}
}
//定义MainmBoard类,并在其中定义 public void usePCICard(PCI p)方法
//在 public void usePCICard(PCI p)中 分别启动start()和stop()方法
class MainBoard{
public void usePCICard(PCI p) {
p.start();
p.stop();
}
}
public class Main {
public static void main(String[] args) {
//分别创建NetworkCard对象、SoundCard对象、MainBoard对象
NetworkCard networkCard = new NetworkCard();
SoundCard soundCard = new SoundCard();
MainBoard mainBoard = new MainBoard();
//用MainBoard对象的usePCICard方法实现网卡、声卡的启动和关闭
mainBoard.usePCICard(networkCard);
mainBoard.usePCICard(soundCard);
/* 输出的信息为:
sending data……
network stop
dudu......
sound stop
*/
}
}




Comments | NOTHING