Java:创建抽象类Transport

来源:互联网 发布:js自动中跳转页面 编辑:程序博客网 时间:2024/04/28 03:52

public abstract class Transport { //创建类Transport
abstract void distance(); //创建抽象方法distance()
public static void main(String[] args) {
// TODO 自动生成的方法存根
Car QQ=new Car(); //创建属于类car的对象QQ,并设置和显示对象的相关信息
QQ.getInfo(“奇瑞”,80,1.5f);
QQ.distance();
Train G=new Train(); //创建属于类Train的对象G,并设置和显示对象的相关信息
G.getInfo(“G7023”,380,1.5f);
G.distance();
}
}
class Car extends Transport{ //创建父类Transport(抽象类)的子类Car
String type; //定义成员变量
float time;
int speed;
float s;
void getInfo(String type,int speed,float time){ //定义成员方法getInfo(),获得相关信息
this.type=type;
this.time=time;
this.speed=speed;
}
void distance(){ //修改(覆盖)抽象方法distance(),计算行程
s=speed*time;
System.out.println(“汽车型号”+type);
System.out.println(“汽车以时速”+speed+”千米/小时行驶了”+time+”小时,行驶路程:”+s+”千米”);
}
}
class Train extends Transport{ //创建父类Transport(抽象类)的子类Train
String number; //定义成员变量
float time;
int speed;
float s;
void getInfo(String number,int speed,float time){ //定义成员方法getInfo(),获得相关信息
this.number=number;
this.time=time;
this.speed=speed;
}
void distance() { //修改(覆盖)抽象方法distance(),计算行程
s=speed;
System.out.println(“火车的次数:”+number);
System.out.println(“火车的以时速”+speed+”千米/小时行驶了”+time+”小时,行驶路程:”+s+”千米”);
}
}
运行结果:
这里写图片描述
程序分析:
定义了交通工具Transport抽象类,在该抽象中定义抽象方法distance()。同时创建汽车类Car和火车类Train,它们都继承于抽象类Transport。在子类car和train中,通过方法重写的方式,重写抽象方法distance(),分别计算汽车和火车的行程。
知识点:
1)抽象类
格式:abstractclass 抽象类名{
类体
}
2)抽象方法
格式:abstract 返回值类型 方法名 ( [ 形式参数 ]);
3)多态性
(1)编译多态
(2)运行多态
注意:
(1)抽象类不一定有抽象方法,但有抽象方法的类一定是抽象类
(2)与抽象类相似,final关键字不能修饰抽象方法,因为final是最终方法,用final修饰的方法不能被修改,而抽象方法没有方法体,它必须通过继承和重写方法的方式修改方法体
(3)与抽象类相似,static关键词也不能修饰抽象方法,因为静态方法必须占据固定的内存,而抽象方法是不能被加载到内存中的(抽象方法无法运行),即它无法占据固定内存

原创粉丝点击