类的继承应用示例程序

具体要求: 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

猜你喜欢

转载自blog.csdn.net/weixin_54645719/article/details/125980669