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 抽象的更多相关文章

  1. Java抽象工厂模式

    Java抽象工厂模式 基本定义 抽象工厂模式是所有形态的工厂模式中最为抽象和最其一般性的.抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,能够创建多个产品族的产品对象 ...

  2. Java抽象与接口的区别

    Java抽象与接口的区别 答案方式一.简单来说,1.接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的, 2.另外,实现接口的一定要实现接口里定义的所有 ...

  3. Java 抽象工厂模式

    抽象工厂模式(Abstract Factory Pattern)是工厂方法模式的进一步抽象,其英文原话"Provide an interface for creating families ...

  4. Java抽象接口技巧(一)

    原文链接 http://blog.csdn.net/qq_35101189/article/details/70799155 在程序设计过程中,读者很可能遇到这样一种困境:设计了一个接口,但实现这个接 ...

  5. 设计模式(四)——Java抽象工厂模式

    抽象工厂模式 1 基本介绍 1) 抽象工厂模式:定义了一个 interface 用于创建相关或有依赖关系的对象簇,而无需指明具体的类 2) 抽象工厂模式可以将简单工厂模式和工厂方法模式进行整合. 3) ...

  6. java抽象、接口 和final

    抽象 一.抽象类:不知道是具体什么东西的类. abstract class 类名 1.抽象类不能直接new出来. 2.抽象类可以没有抽象方法. public abstract class USB { ...

  7. java抽象-老师的生日-逻辑思维-有趣的面试题-遁地龙卷风

    (-1)写在前面 都快去北京了,硬生生的安排一场java考试,对于那些特别细节的东西我忘了吧也不觉得有什么不好,以前都记得,也都见过,只不过平时不常用连接断了,但是你死记硬背是没用的,一段时间后还是会 ...

  8. java——抽象

    抽象类:特点:1,方法只有声明,没有实现时,该方法就是抽象方法,需要被abstract关键字修饰.抽象方法必须定义在抽象类中,该类也必须被abstract修饰2,抽象类不可以被实例化.为什么?因为调用 ...

  9. 【JAVA-JDT-AST】Java抽象语法树的构建、遍历及转成dot格式(附Github源码)

    Background: 最近为了重现tree-based clone detection的论文:L. Jiang, G. Misherghi, Z. Su, and S. Glondu. Deckar ...

随机推荐

  1. [20181130]如何猜测那些值存在hash冲突.txt

    [20181130]如何猜测那些值存在hash冲突.txt --//今年6月份开始kerrycode的1个帖子提到子查询结果缓存在哈希表中情况:--//链接:http://www.cnblogs.co ...

  2. sql server 计算两个时间 相差的 几天几时几分几秒

    CAST ( CAST ( DATEDIFF ( ss, StartTime, ConcludeTime ) / ( 60 * 60 * 24 ) AS INT ) AS VARCHAR ) + '天 ...

  3. c/c++ const关键字

    const 在星号的右边:不可以改指针的指向,可以用指针改里面的值 int * const p; const在星号的左边:可以改指针的指向,不可以用指针改里面的值 int const *p; cons ...

  4. 用好lua+unity,让性能飞起来——luajit集成篇/平台相关篇

    luajit集成篇 大家都知道luajit比原生lua快,快在jit这三个字上. 但实际情况是,luajit的行为十分复杂.尤其jit并不是一个简单的把代码翻译成机器码的机制,背后有很多会影响性能的因 ...

  5. Apache中httpd.conf文件的详解

    PHP中,Apache的配置至关重要,特别是httpd.conf这个文件,它是Apache中的核心文件.好了,废话不说,今天将这个文件中的一些内容讲解一番. ServerRoot "d:/w ...

  6. 【算法】LeetCode算法题-Two Sum

    程序 = 数据结构 + 算法. 算法是每一位程序员学习成长之路上无法避开的重要一环,并且越早接触越好.今后会每天做些算法题,至少每天做一道题目,同时会记录自己的解题思路和代码,通过[算法]专题来分享. ...

  7. spring boot +RabbitMQ +InfluxDB+Grafara监控实践

    本文需要有相关spring boot 或spring cloud 相关微服务框架的基础,如果您具备相关基础可以很容易的实现下述过程!!!!!!! 希望本文的所说对需要的您有所帮助 从这里我们开始进入闲 ...

  8. Apache Curator is a Java/JVM client library for Apache ZooKeeper

    http://curator.apache.org/index.html Welcome to Apache Curator What is Curator? Curator n ˈkyoor͝ˌāt ...

  9. 模拟placeholder

    把这个记下来,主要是因为这里的 defaultValue 我之前竟然不知道 <input type="text" value="提示内容" onFocus ...

  10. 【BZOJ2117】 [2010国家集训队]Crash的旅游计划

    [BZOJ2117] [2010国家集训队]Crash的旅游计划 Description 眼看着假期就要到了,Crash由于长期切题而感到无聊了,因此他决定利用这个假期和好友陶陶一起出去旅游. Cra ...