//父类
package Demo_OOP;
public class Vehicle {
private String name;
private String type;
private String color;
public Vehicle(String myName, String myType, String myColor){
name =myName;
type =myType;
color=myColor;
}
public String getName(){
return this.name;
}
public String getType(){
return this.type;
}
public String getColor(){
return this.color;
}
public void start(){
System.out.println(" 启动");
}
public void transport(){
System.out.println("运输");
}
public void carry(){
System.out.println("载人");
}
}
//两个子类
package Demo_OOP;
public class RoadVehicle extends Vehicle{
private String wheel;
private String brand;
public RoadVehicle(String mywheel,String mybrand, String myName,String myType,String myColor){
super (myName, myType, myColor); //调用父类构造函数
wheel=mywheel;
brand=mybrand;
}
public void runload(){
System.out.println("我能在陆地行驶");
}
}
package Demo_OOP;
public class SeaVehicle extends Vehicle{
private String bigVolume;
public SeaVehicle (String bigVolume,String myBigVolume,String myName,String myType,String myColor){
super(myName,myType,myColor);//显示调用父类的构造函数
bigVolume=myBigVolume;
}
public void runSea(){
System.out.println("我这么大的"+this.bigVolume+"可以在海里自由行驶");
}
public void carryCar(){
System.out.println("我能"+this.bigVolume+"你能吗!");
}
}
package Demo_OOP;
public class SeaVehicle extends Vehicle{
private String bigVolume;
public SeaVehicle (String bigVolume,String myBigVolume,String myName,String myType,String myColor){
super(myName,myType,myColor);//显示调用父类的构造函数
bigVolume=myBigVolume;
}
public void runSea(){
System.out.println("我这么大的"+this.bigVolume+"可以在海里自由行驶");
}
public void carryCar(){
System.out.println("我能"+this.bigVolume+"你能吗!");
}
}
//子类作为父类,子类下的派生类
package Demo_OOP;
class Bus extends RoadVehicle implements EngineDriven{
private String PunchCard;//打卡
private String Gas;//用汽油
public Bus(String myPunchCard,String myGas,String mywheel,String mybrand, String myName,String myType,String myColor){
super(mywheel,mybrand,myName,myType,myColor);
myPunchCard=PunchCard;
myGas=Gas;
}
public String getName(){
return super.getName();
}
public void runLoad(){//调用父类方法
System.out.println("我只能在陆地行驶");
}
public void energy(){//重写接口的方法
System.out.println("我是机动车");
}
}
public class Train extends RoadVehicle implements EngineDriven {
String Length; //火车长度
String Fuel; //火车所用燃料
public Train(String myLength,String myFuel,String mywheel,String mybrand, String myName,String myType,String myColor){
super(mywheel,mybrand,myName,myType,myColor); //调用父类构造函数
myLength=Length;
myFuel=Fuel;
}
public String getName(){
return super.getName();
}
public void runroad(){ //继承父累的方法
System.out.println("我行驶在地面,但依靠铁轨");
}
public void energy(){
System.out.println("我是机动车,我靠能源形势");
}
}
package Demo_OOP;
public class Bicycle extends RoadVehicle{
private String Prdal;//脚踏
//调用父类函数
public Bicycle(String Prdal, String mywheel, String mybrand, String myName, String myType, String myColor){
super(mywheel, mybrand, myName, myType, myColor);
Prdal = mybrand;
}
//重写父类方法
public String getName(){
return super.getName();
}
//重写父类方法
public void getWheel(){
System.out.println("我有两个轮子");
}
public void Runroad(){
}
}
//接口
package Demo_OOP;
public interface EngineDriven {
public void energy();
}