具体要求: 1.Vehicle车辆类受保护的属性包括:wheels(车轮个数)和weight(车重);
2.Car小车类是Vehicle类的子类,属性有loader(可载人数);
3.Truck卡车类是car的子类,属性有payload(载重);
4.要求生成无参构造方法和包含所有属性的构造方法,要求自定义对象输出信息;
5.生成每一个类的对象,并测试相关方法;
代码如下:
注意:当一个类的属性(成员变量)名与访问该属性的方法参数名相同时,则需要使用 this 关键字来访问类中的属性,以区分类的属性和方法中的参数。
class Vehicle{
protected int wheels=4;
protected int weight=400;//定义受保护的变量车轮个数和车重
public Vehicle() {//无参构造方法
System.out.println("Vehicle的无参构造方法被调用");
this.weight=weight;
this.wheels=wheels;
}
void Vehicle() {//包含所有属性的构造方法
System.out.println("轮胎个数为:"+wheels+",车重:"+weight);
}
}
class Car extends Vehicle{
int loader=5;//定义一个变量可载人数
public Car() {//无参构造方法
super();//默认调用父类的构造方法,可写可不写
System.out.println("Car的无参构造方法被调用");
this.loader=loader;
}
void Car() {//包含所有属性的构造方法
System.out.println("可载人数为:"+loader);
}
}
class Truck extends Car{
int payload=1000;//定义一个变量载重
public Truck() {//无参构造方法
super();
System.out.println("Truck的无参构造方法被调用");
this.payload=payload;
}
void Truck() {//包含所有属性的构造方法
System.out.println("载重为:"+payload);
}
}
public class ExtendsTest extends Truck {
public static void main(String[] args) {
//实例化truck类的一个对象t
Truck t=new Truck();
t.Truck();//调用truck方法
//实例化car类的一个对象c
Car c=new Car();
c.Car();
//实例化vehicle类的一个对象v
Vehicle v=new Vehicle();
v.Vehicle();
}
}
运行结果:
//运行结果
Vehicle的无参构造方法被调用
Car的无参构造方法被调用
Truck的无参构造方法被调用
载重为:1000
Vehicle的无参构造方法被调用
Car的无参构造方法被调用
可载人数为:5
Vehicle的无参构造方法被调用
轮胎个数为:4,车重:400