A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 编号3363 中级黑马   /  2016-3-27 01:47  /  2018 人查看  /  2 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文



/*
        描述:汽车都具有跑的功能,普通的奥迪车也不例外,但是高端的奥迪车除了具有跑的功能外,还具有自动泊车和无人驾驶的功能!
        需求:定义普通奥迪车,高端奥迪车,实现描述中的功能并测试一下开发步骤,仅供参考:
        (1)编写一个抽象类Car
                (a)包含三个属性brand(品牌)、color(颜色)、price(价格)
                (b)提供空参有参构造,set和get方法
                (c)定义一个抽象方法run();//车行驶的方法
        (2)定义一个普通的奥迪汽车类,AudiCar
                (a)继承Car
                (b)重写run()方法,方法中打印一句话,要求打印汽车的品牌、颜色、价格
        (3)定义两个接口
                (a)无人驾驶接口,名称为"NoPersonDriving",包含一个抽象方法noPersonDrive();//无人驾驶方法
                (b)自动泊车功能接口,名称为"自动泊车功能",包含一个抽象方法autoStopCar();//自动泊车方法
        (4)定义高端奥迪车类AudiSuperCar
                (a)继承AudiCar
                (b)实现无人驾驶接口和自动泊车接口
        (5)定义测试类Car_Polymorphic
                (a)创建普通的奥迪车,并测试
                (b)创建高端奥迪车,并测试


思路:
①先根据需求打好程序结构,从上到下依次为:测试类、接口、父类抽象类、子类、子类的子类;
②创建键盘录入对象,用于接收键盘录入的数据;
③在汽车抽象类中定义品牌、颜色和价格三个属性,与一个汽车行驶的抽象方法;
④在普通奥迪车类中汽车行驶的方法;
⑤在高端奥迪车类中重写汽车行驶的方法和接口中的抽象方法;
⑥定义一个展示汽车行驶的方法;
⑦创建对象调用方法,输入数据并打印输出结果。

*/



//导包。
import java.util.Scanner;

//汽车测试类。
class CarPolymorphic{

        public static void main(String[] args){

                Scanner sc = new Scanner(System.in);                //创建键盘录入对象。

                System.out.println("请输入车的品牌:");

                String brand = sc.nextLine();                        //输入品牌。

                System.out.println("请输入车的颜色:");

                String color = sc.nextLine();                        //输入颜色。

                System.out.println("请输入车的价格:");

                int price = sc.nextInt();                        //输入价格。


                Car c = new AudiCar();                        //创建父类引用指向子类对象。

                AudiSuperCar asc = new AudiSuperCar();                        //创建父类引用指向子类对象。

                        show();
        }


        public static void show(Car c){                                        //定义展示车行驶的方法。

                c.run();
                c.run();
        }
}


//无人驾驶接口。
interface NoPersonDriving{

        public abstract void noPersonDrive();                        //无人驾驶方法。
}


//自动泊车功能接口。
interface AutoStoping{

        public abstract void autoStopCar();                        //自动泊车方法。
}


//汽车抽象类。
abstract class Car{

        private String brand;                                        //定义品牌。

        private String color;                                        //定义颜色。

        private int price;                                        //定义价格。

        public Car(){}                                        //空参构造。

        public Car(String brand, String color, int price){                //有参构造。

                this.brand = brand;
                this.color = color;
                this.price = price;
        }

        public abstract void run();                                //车行驶的方法。

        public void setBrand(String brand){                        //设置品牌。

                this.brand = brand;
        }

        public String getBrand(){                                //获取品牌。

                return brand;
        }

        public void setColor(String color){                        //设置颜色。

                this.color = color;
        }

        public String getColor(){                                //获取颜色。

                return color;
        }

        public void setPrice(int price){                                //设置价格。

                this.price = price;
        }

        public int getPrice(){                                //获取价格。

                return price;
        }
}


//普通的奥迪汽车类,
class AudiCar extends Car{

        public AudiCar(){}                                        //空参构造。

        public AudiCar(String brand, String color, int price){                //有参构造。

                super(brand, color, price);
        }

        public void run(){                                        //重写车行驶的方法。

                System.out.println(this.getBrand()+"车飞快奔驰。");

                System.out.println("车的品牌是:"+this.getBrand()+";\n"+"车的颜色是:"+this.getColor()+";\n"+"车的品牌是:"+this.getPrice()+"。\n");
        }
}


//高端奥迪车类。
class AudiSuperCar extends AudiCar implements NoPersonDriving, AutoStoping{

        public AudiSuperCar(){}                                        //空参构造。

        public AudiSuperCar(String brand, String color, int price){                //有参构造。

                super(brand, color, price);
        }


        public void noPersonDrive(){                                        //重写无人驾驶方法。

                System.out.println(this.getBrand()+"启动无人驾驶功能。");
        }

        public void autoStopCar(){                                        //重写自动泊车方法。

                System.out.println(this.getBrand()+"启动自动泊车功能。");
        }

        public void run(){                                                //重写车行驶的方法。

                System.out.println(this.getBrand()+"车飞快奔驰。");

                System.out.println("车的品牌是:"+this.getBrand()+";\n"+"车的颜色是:"+this.getColor()+";\n"+"车的品牌是:"+this.getPrice()+"。\n");
        }
}


评分

参与人数 1黑马币 +28 收起 理由
夜刀神10香 + 28 赞一个!

查看全部评分

2 个回复

倒序浏览
加油,你可代表了未来。话说弱者为何要战斗?
回复 使用道具 举报
夜刀神10香 发表于 2016-3-27 18:16
加油,你可代表了未来。话说弱者为何要战斗?

。。。。。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马