Java:创建抽象类Transport

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关键词也不能修饰抽象方法,因为静态方法必须占据固定的内存,而抽象方法是不能被加载到内存中的(抽象方法无法运行),即它无法占据固定内存

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值