定义一个车(Vehicle)基类,具有MaxSpeed、Weight等成员变量,Run、Stop等成员函数,
由此派生出自行车(Bicycle)类、汽车(Motorcar)类。自行车(Bicycle)类有高度(Height)等属性,
汽车(Motorcar)类有座位数(SeatNum)等属性。
思考摩托车(Motorcycle)类在继承中的位置,注意把Vehicle设置为抽象类。如果不把Vehicle设置为抽象类,会有什么问题?

解决方案 »

  1.   

    "如果不把Vehicle设置为抽象类,会有什么问题?"抽象类就像接口,内置一些属性和方法,构造函数登,子类要么也是抽象类,要么就重写基类的构造函数和方法如你所说,如果不定义为抽象类,那么就不能用extends 继承基类了.把基类定义成抽象类,才能使子类继承,否则就相当于一个固定好属性的类了
      

  2.   

    不太明白……就像下面这个代码,我没有声明abstract,不一样可以重写函数么?
    class Vehicle {
        double MaxSpeed;
        double Weight;
        void Run(){};
        void Stop(){}
    }class Bicycle extends Vehicle{
        double Height;
        void Run(){
            System.out.println("I can 2!");
        }
    }class Motocar extends Vehicle{
        double SeatNum;
        void Run(){
            System.out.println("I can 3!");
        }
    }class Motorcycle extends Vehicle{
        void Run(){
            System.out.println("I can 4!");
        }
    }public class question2_7 {
        public static void main(String[] args) {
            Vehicle a=new Motorcycle();
            Vehicle b=new Motocar();
            a.Run();
            b.Run();
        }}
      

  3.   


    你的代码中是重写叫 overwrite继承抽象类并重写叫 overload 
      

  4.   


    http://zhidao.baidu.com/question/73456261.html?fr=ala0请参考,上面很详细的指出了你的问题