继承中方法的重写和抽象类

       定义:

           子类中出现与父类一模一样的方法时,会出现覆盖操作,也称为override重写、复写或者覆盖。'' 当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法,这样,即沿袭了父类的功能,又定义了子类特有的内容

         比如手机,当描述一个手机时,它具有发短信,打电话,显示来电号码功能,后期由于手机需要在来电显示功能中增加显示姓名和头像,这时可以重新定义一个类描述智能手机,并继承原有描述手机的类。并在新定义的类中覆盖来电显示功能,在其中增加显示姓名和头像功能。

          重写注意事项有

1,子类方法覆盖父类方法,必须要保证权限大于等于父类权限。

2,子类与父类的方法声明必须一模一样:函数的返回值类型函数名 参数列表都要一样

           当子类的成员与父类的成员变量重名时如何访问变量

1.当子类的成员与父类的成员变量重名时,在子类中直接成员变量或使用this.成员变量名称访问本类的成员变量

2,子类的成员与父类的成员变量重名时,在子类中,super.成员变量访问父类的成员变量

       抽象类,抽象方法的定义

被abstract修饰,只有方法声明没有方法主体的方法就是抽象方法

被abstract修饰类就是抽象类

=========================================================

例题

  用代码描述   

 四个轮子的白色的汽车可以跑和加油

 两个轮子的红色电动自行车可以跑和充电

 要求: 把汽车和电动自行车的共性抽取到交通工具类中

  /*

1.定义交通工具类(Vehicle)

   a)成员变量

      i.轮子个数 wheel

      ii.颜色 color

   b)成员方法

      i.跑 run() 

      1.打印格式: 4个轮子白色的车在跑

   c)要求:

      i.成员变量不带权限修饰符,方法是公共权限的.

 */

publicclass Vehicle {

// a)成员变量

//    i.轮子个数 wheel

   intwheel;

//    ii.颜色 color

   Stringcolor;

//b)成员方法

// i.跑 run() 

// 1.打印格式: 四个轮子白色的车在跑

   publicvoid run(){

      System.out.println(wheel+"个轮子"+color+"的车在跑");

   }

}

 

/*

 2.定义小汽车类(Car),继承Vehicle类

   a)成员方法:加油 (addGasoline()))

      i.在方法中的输出格式为: 4个轮子的白色小汽车在加油

 */

publicclass Carextends Vehicle{

// a)成员方法:加油 (addGasoline()))

//    i.在方法中的输出格式为: 4个轮子的白色小汽车在加油

   publicvoid addGasoline(){

      System.out.println(wheel+"个轮子的"+color+"小汽车在加油");

   }

}

 

/*

 3.定义电动车类(ElectricBicycle),继承Vehicle类

   a)成员方法:充电 (charge())

      i.在方法中的输出格式为: 2个轮子的黑色电动自行车在充电

 */

publicclass ElectricBicycleextends Vehicle {

// a)成员方法:充电 (charge())

//    i.在方法中的输出格式为: 2个轮子的黑色电动自行车在充电

   publicvoid charge(){

      System.out.println(wheel+"个轮子的"+color+"电动自行车在充电");

   }

}

 

/*   

4.定义测试类Test

   c)提供main方法

   d)在main方法中

      i.使用空参构造,创建Car 对象c

      ii.把c对象的成员wheel 赋值为 4

      iii.把c对象的成员color赋值为 白色

      iv.调用c对象成员方法run方法

      v.调用c对象的成员方法addGasoline()

      vi.使用空参构造,创建ElectricBicycle对象eb

      vii.eb对象的成员wheel 赋值为2

      viii.ed对象的成员color赋值为黑色

      ix.调用ed对象成员方法run方法

      x.调用ed对象成员方法charge方法

 */

publicclass Test {

   publicstaticvoid main(String[] args) {

//    i.使用空参构造,创建Car 对象c

      Carc = new Car();

//    ii.把c对象的成员wheel 赋值为 4

      c.wheel = 4;

//    iii.把c对象的成员color赋值为 白色

      c.color = "白色";

//    iv.调用c对象成员方法run方法

      c.run();

//    v.调用c对象的成员方法addGasoline()

      c.addGasoline();

//    vi.使用空参构造,创建ElectricBicycle对象eb

      ElectricBicycleeb = new ElectricBicycle();

//    vii.eb对象的成员wheel 赋值为2

      eb.wheel = 2;

//    viii.ed对象的成员color赋值为黑色

      eb.color = "黑色";

//    ix.调用ed对象成员方法run方法

      eb.run();

//    x.调用ed对象成员方法charge方法

      eb.charge();

   }

}








你可能感兴趣的:(基础)