java 抽象
MotoVehicle抽象类
package text1; /*
* 抽象
*/
public abstract class MotoVehicle {
// 共同的属性
private String no;// 车牌号
private String brand;// 品牌2
private String color;
private double milage; public String getNo() {
return no;
} public void setNo(String no) {
this.no = no;
} public String getBrand() {
return brand;
} public void setBrand(String brand) {
this.brand = brand;
} public String getColor() {
return color;
} public void setColor(String color) {
this.color = color;
} public double getMilage() {
return milage;
} public void setMilage(double milage) {
this.milage = milage;
} public MotoVehicle() {// 无参构造
} // 有参构造
public MotoVehicle(String no, String brand, String color, int milage) {
this.no = no;
this.brand = brand;
this.color = color;
this.milage = milage;
} public MotoVehicle(String no, String brand) {
super();
this.no = no;
this.brand = brand;
} public abstract void display(); public abstract double calcRent(int days);
}
Bus类
package text1;
public class Bus extends MotoVehicle {
private int seatCount;
public Bus() {
super();
}
public Bus(String no, String brand, String color, int milage, int seatCount) {
super(no, brand, color, milage);
// TODO Auto-generated constructor stub
this.seatCount = seatCount;
}
public Bus(String no, String brand, int seatCount) {
super(no, brand);
// TODO Auto-generated constructor stub
this.seatCount = seatCount;
}
public int getSeatCount() {
return seatCount;
}
public void setSeatCount(int seatCount) {
this.seatCount = seatCount;
}
public void display() {
System.out.println("租车信息如下:");
System.out.println("品牌:" + this.getBrand() + ",座位数:" + this.getSeatCount() + ",颜色:" + this.getColor() + ",车牌号:"
+ this.getNo() + ",里程数:" + this.getMilage());
}
public double calcRent(int days) {
// TODO Auto-generated method stub
double money = 0;
if (seatCount <= 16) {
money = 800;
} else {
money = 1500;
}
return money * days;
}
}
Car类
package text1;
public class Car extends MotoVehicle {
//自己特有的属性
private String type;//类型
//构造方法,继承父类构造方法
public Car() {
super();
// TODO Auto-generated constructor stub
}
public Car(String no, String brand, String color, int milage,String type) {
super(no, brand, color, milage);
// TODO Auto-generated constructor stub
this.type=type;
}
public Car(String no,String brand,String type) {
super(no,brand);
// TODO Auto-generated constructor stub
this.type=type;
}
//get set方法
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
//重写显示租车信息方法
@Override
public void display() {
System.out.println("租车信息如下:");
System.out.println("品牌:"+this.getBrand()+
",类型:"+this.getType()+
",颜色:"+this.getColor()+
",车牌号:"+this.getNo()+
",里程数:"+this.getMilage());
}
//重写父类计算租金方法
@Override
public double calcRent(int days) {
// TODO Auto-generated method stub
double money=0;
if (type.equals("商务舱GL8")) {
money=600;
}else if (type.equals("550i")) {
money=500;
}else if (type.equals("林荫大道")) {
money=300;
}
return money*days;
}
}
Test
package text1;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建轿车对象
Car car=new Car("豫A8888", "别克", "银灰色", 10000, "商务舱GL8");
//调用显示信息方法
car.display();
//调用计算租金方法,结果由carPrice保存
double carPrice=car.calcRent(2);
System.out.println("总租金:"+carPrice);
System.out.println("-----------------");
//创建一个客车对象
Bus bus=new Bus("豫B3336", "金杯", "白色", 15000, 50);
bus.display();
double busPrice=bus.calcRent(3);
System.out.println("总租金:"+busPrice);
}
}
java 抽象的更多相关文章
- Java抽象工厂模式
Java抽象工厂模式 基本定义 抽象工厂模式是所有形态的工厂模式中最为抽象和最其一般性的.抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,能够创建多个产品族的产品对象 ...
- Java抽象与接口的区别
Java抽象与接口的区别 答案方式一.简单来说,1.接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的, 2.另外,实现接口的一定要实现接口里定义的所有 ...
- Java 抽象工厂模式
抽象工厂模式(Abstract Factory Pattern)是工厂方法模式的进一步抽象,其英文原话"Provide an interface for creating families ...
- Java抽象接口技巧(一)
原文链接 http://blog.csdn.net/qq_35101189/article/details/70799155 在程序设计过程中,读者很可能遇到这样一种困境:设计了一个接口,但实现这个接 ...
- 设计模式(四)——Java抽象工厂模式
抽象工厂模式 1 基本介绍 1) 抽象工厂模式:定义了一个 interface 用于创建相关或有依赖关系的对象簇,而无需指明具体的类 2) 抽象工厂模式可以将简单工厂模式和工厂方法模式进行整合. 3) ...
- java抽象、接口 和final
抽象 一.抽象类:不知道是具体什么东西的类. abstract class 类名 1.抽象类不能直接new出来. 2.抽象类可以没有抽象方法. public abstract class USB { ...
- java抽象-老师的生日-逻辑思维-有趣的面试题-遁地龙卷风
(-1)写在前面 都快去北京了,硬生生的安排一场java考试,对于那些特别细节的东西我忘了吧也不觉得有什么不好,以前都记得,也都见过,只不过平时不常用连接断了,但是你死记硬背是没用的,一段时间后还是会 ...
- java——抽象
抽象类:特点:1,方法只有声明,没有实现时,该方法就是抽象方法,需要被abstract关键字修饰.抽象方法必须定义在抽象类中,该类也必须被abstract修饰2,抽象类不可以被实例化.为什么?因为调用 ...
- 【JAVA-JDT-AST】Java抽象语法树的构建、遍历及转成dot格式(附Github源码)
Background: 最近为了重现tree-based clone detection的论文:L. Jiang, G. Misherghi, Z. Su, and S. Glondu. Deckar ...
随机推荐
- [20180926]查询相似索引.txt
[20180926]查询相似索引.txt --//有时候在表上建立索引比如A,B字段,可能又建立B字段索引,甚至A字段索引以及B,A字段索引,或者还建立C,A字段索引,--//需要有1个脚本查询这些索 ...
- UGUI组件之快速消息提示(飘字)
效果预览 使用情景 几乎每一个游戏都会有这种飘字提示,实现起来并不复杂, 我把它做了一个组件. 开箱即可使用,无需二次开发,如果效果不满意,开放源码,方便进行调优. 组件源码 核心代码 每次将飘字的请 ...
- JAVA的下载与安装和环境变量配置等详细教程
初学JAVA时,新手常常不知如何下载JAVA,也不知如何安装JAVA以及对JAVA配置环境变量.近期学弟学妹常请教我如何下载安装和配置JAVA,于是写下此博文以便更多新手快速入门,由于我本人是玩智能车 ...
- 将含有makefile文件的源码加入Eclipse工程
转载自https://www.linuxidc.com/Linux/2011-02/32763.htm 很多软件在开发或者分析时需要一个像样的IDE,Eclipse是其中很优秀的一个,至少个人感觉很好 ...
- Kernel数据结构移植(list和rbtree)
主要移植了内核中的 list,rbtree.使得这2个数据结构在用户态程序中也能使用. 同时用 cpputest 对移植后的代码进行了测试.(测试代码其实也是使用这2个数据结构的方法) 内核代码的如下 ...
- 服务创建&删除
创建服务.bat @echo.服务启动...... @echo off @sc create BestoneProductEditSvc binPath= "D:\winSvc\Beston ...
- 【ctags/cscope/project安装使用】给神编辑器vim添加新的翅膀
本文地址 分享提纲: 1.安装 2.使用cscope 3.使用project 1.安装 1.1)linux(yum下安装) yum -y install cscope 1.2)linux(unbunt ...
- Kafka 0.11新功能介绍:空消费组延迟rebalance
Kafka 0.11新功能介绍:空消费组延迟rebalance 在0.11之前的版本中,多个consumer实例加入到一个空消费组将导致多次的rebalance,这是由于每个consumer inst ...
- fastText文本分类算法
1.概述 FastText 文本分类算法是有Facebook AI Research 提出的一种简单的模型.实验表明一般情况下,FastText 算法能获得和深度模型相同的精度,但是计算时间却要远远小 ...
- POJ2749 Building roads
嘟嘟嘟 最近把21天漏的给不上. 今天重温了一下2-SAT,感觉很简单.就是把所有条件都转化成如果--必然能导出--.然后就这样连边建图,这样一个强连通分量中的所有点必然都是真或者假.从而根据这个点拆 ...