大神们,有谁会这道题啊?java题,跪求解析

 我来答
月之子4
2016-06-26 · TA获得超过396个赞
知道小有建树答主
回答量:289
采纳率:0%
帮助的人:240万
展开全部
一、先编Flyable的接口,Flyable接口有三个方法,注意,接口中的方法只能写方法名,不能有方法体,接口使用interface关键字
public interface Flyable {
public void takeoff();
public void land();
public void fly();
}
二、创建交通工具类vehicle类,虽然这个类啥方法啥属性都没有,但是也是有用的,具体请参照java的多态
public class Vehicle {
}

三、创建飞机类,飞机属于交通工具,所以继承交通工具类,并且因为它能飞,所以实现Flyable接口,使用extends和implements关键字完成继承和实现,实现接口就必须实现里面的方法(如果你不是抽象类),这里简单的输出几句话当作是实现了方法
public class AirPlane extends Vehicle implements Flyable{
@Override
public void takeoff() {
System.out.println("飞机起飞");
}
@Override
public void land() {
System.out.println("飞机着陆");
}
@Override
public void fly() {
System.out.println("飞机在飞来飞去");
}
}
四、创建动物类,可以看到动物类有一个方法eat
public class Animal {
public void eat(){
System.out.println("动物吃东西");
}
}

五、创建鸟类Bird,鸟类是动物,所以继承动物类,可以飞,所以实现Flyable接口。我们刚才创建的动物类中的eat方法其实已经被继承下来了,但是刚才的方法很笼统,输出的是动物吃东西,现在是鸟,应该输出鸟吃东西才对,所以我们可以重写这个方法。实现了接口必须实现里面的方法,除了这些方法之外,鸟类还有自个的方法,比如下蛋筑巢,代码如下
public class Bird extends Animal implements Flyable{
@Override
public void takeoff() {
System.out.println("鸟类起飞");
}
@Override
public void land() {
System.out.println("鸟类着陆");
}
@Override
public void fly() {
System.out.println("小鸟在空中飞来飞去");
}
@Override
public void eat() {
System.out.println("鸟吃东西");
}
public void buildNest() {
System.out.println("鸟类筑巢");
}
public void layEggs(){
System.out.println("小鸟下蛋");
}
}
六、创建superman类,超人属于动物,所以继承动物类,超人会飞所以实现Flyable接口,超人有自己的方法停止子弹和越过建筑物
public class Superman extends Animal implements Flyable {
@Override
public void takeoff() {
System.out.println("超人起飞");
}
@Override
public void land() {
System.out.println("超人着陆");
}
@Override
public void fly() {
System.out.println("超人飞来飞去");
}
@Override
public void eat() {
System.out.println("超人吃东西");
}
public void leapBuilding() {
System.out.println("超人越过建筑物");
}
public void stopBullet(){
System.out.println("超人停止子弹");
}
}
七、现在有汽车,玩具车,玩具飞机,阿帕奇直升飞机,我们来分析一下,汽车和玩具车属于交通工具,所以应该实现交通工具类,玩具飞机和阿帕奇直升飞机是属于飞机的,所以实现飞机类,我们只要重写他们父类的方法即可
汽车类
public class Car extends Vehicle{
public void drive() {
System.out.println("汽车开在路上");
}
}
玩具车类
public class ToyCar extends Vehicle{
public void drive(){
System.out.println("玩具车开在路上");
}
}
玩具飞机类
public class ToyPlane extends AirPlane{
@Override
public void takeoff() {
System.out.println("玩具飞机起飞");
}
@Override
public void land() {
System.out.println("玩具飞机着陆");
}
@Override
public void fly() {
System.out.println("玩具飞机飞来飞去");
}
}
阿帕奇直升机类
public class Apache extends AirPlane{
@Override
public void takeoff() {
System.out.println("阿帕奇直升机起飞");
}
@Override
public void land() {
System.out.println("阿帕奇直升机着陆");
}
@Override
public void fly() {
System.out.println("阿帕奇直升机飞来飞去");
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式