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

       定义:

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

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

          重写注意事项有

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

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

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

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

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

       抽象类,抽象方法的定义

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

被abstract修饰类就是抽象类

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

例题

  用代码描述   

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

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

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

 /*

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

  a)成员变量

     i.轮子个数 wheel

     ii.颜色 color

  b)成员方法

     i.跑 run() 

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

  c)要求:

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

 */

publicclassVehicle {

//a)成员变量

//   i.轮子个数 wheel

  intwheel;

//   ii.颜色 color

  Stringcolor;

//b)成员方法

//i.跑 run() 

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

  publicvoidrun(){

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

  }

}

 

/*

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

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

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

 */

publicclassCarextendsVehicle{

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

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

  publicvoidaddGasoline(){

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

  }

}

 

/*

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

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

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

 */

publicclassElectricBicycleextendsVehicle {

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

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

  publicvoidcharge(){

     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方法

 */

publicclassTest {

  publicstaticvoidmain(String[]args) {

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

     Carc=newCar();

//   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=newElectricBicycle();

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

     eb.wheel= 2;

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

     eb.color="黑色";

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

     eb.run();

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

     eb.charge();

  }

}









版权声明:本文为zhangwenzheng0526原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。