java基础 面向对象试题
题目:
现有交通工具(Seater),出租车(Taxi),客机(Airliner),客船(Ship)都属于交通工具。
各交通工具都有品牌(brand)字段和载客行为(manned)。
客机实现了IFly接口中定义的飞天的功能fly(),
出租车实现了IRun接口中定义的道路上跑的功能run(),
客船实现了ISwim接口中定义的游的功能swim()。
要求:
1)用继承和接口,模拟各交通工具和功能的关系,功能用接口。
2)请在测试类的main方法中用多态的知识,
调用出租车的run方法,打印“出租车开始跑了”,
调用飞机的fly方法,打印“飞机开始飞天了”,
调用客船的swim方法,打印“船舶开始在海洋中漂泊了”,
用到的知识点和思路:
用继承和接口还有多态
用接口是为了强制他们的规范
用多态是因为以后会经常用到 所有现在就强加进去 这道题其实是不要用到多态的
用继承 继承父类有的所有交通类都有的品牌(brand)字段和载客行为(manned)并规范他们
用多态访问他们的子类的方法用强制转换
代码如下:
父类代码:
package com.cen.Object_oriented.day03._08_Seater;
public class Seater {
//创建两个交通工具的品牌和名字
private String brand;
private String manned;
public String getBrand() {
return brand;
}
//空构造器
public Seater(){
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getManned() {
return manned;
}
public void setManned(String manned) {
this.manned = manned;
}
public Seater(String brand, String manned) {
this.brand = brand;
this.manned = manned;
}
public void Passenger(){
}
}
出租车类:
public class Taxi extends Seater implements IRun{
@Override
public void run() {
System.out.println("出租车开始跑了");
}
public void Passenger(){
System.out.println("有载客行为");
}
}
出租车接口:
public interface IRun {
void run();
}
轮船类:
public class Ship extends Seater implements ISwim {
@Override
public void swim() {
System.out.println("船舶开始在海洋中漂泊了");
}
public void Passenger(){
System.out.println("有载客行为");
}
}
轮船接口规范:
public interface ISwim {
void swim();
}
飞机类:
public class Airliner extends Seater implements IFly {
@Override
public void fly() {
System.out.println("飞机开始飞天了");
}
public void Passenger(){
System.out.println("有载客行为");
}
}
飞机接口规范:
public interface IFly {
void fly();
}
测试代码:
public class Team {
public static void main(String[] args) {
Seater s = new Taxi();
s.setBrand("牛车牌");
s.setManned("咔咔在路上走");
System.out.println(s.getBrand());
System.out.println(s.getManned());
Taxi a = (Taxi)s;
a.run();
s.Passenger();
System.out.println("------------------------------------------");
Airliner al = new Airliner();
al.setBrand("小鸟牌");
al.setManned("叽叽在天上飞");
System.out.println(al.getBrand());
System.out.println(al.getManned());
al.fly();
al.Passenger();
System.out.println("------------------------------------------");
Ship sh = new Ship();
sh.setBrand("金油鱼牌");
sh.setManned("在海底爬");
System.out.println(sh.getBrand());
System.out.println(sh.getManned());
sh.swim();
sh.Passenger();
}