设计2个类,要求如下: (知识点:类的继承 方法的覆盖)
1、定义一个汽车类Vehicle,
  1.1 属性包括:汽车品牌brand(String类型)、颜色color(String类型
   )和速度speed(double类型)。
  1.2 至少提供一个有参的构造方法(要求品牌和颜色可以初始化为任意值
   ,但速度的初始值必须为0)。
  1.3 为属性提供访问器方法。注意:汽车品牌一旦初始化之后不能修改。
  1.4 定义一个一般方法run(),用打印语句描述汽车奔跑的功能
  1.5 在main方法中创建一个品牌为“benz”、颜色为“black”的汽车。

2 、定义一个Vehicle类的子类轿车类Car,要求如下:
  2.1 轿车有自己的属性载人数loader(int 类型)。
  2.2 提供该类初始化属性的构造方法。
  2.3 重新定义run(),用打印语句描述轿车奔跑的功能。
  2.4 在main方法中创建一个品牌为“Honda”、颜色为“red”,载人数为2
    人的轿车。

Vehicle.java

package lianxi;

public class Vehicle {
// 属性
public String brand;
public String color;
public Double speed = 0.0;

// set() 和 get()方法
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 getSpeed() {
return speed;
}
public void setSpeed(Double speed) {
this.speed = speed;
}

// 无参构造方法
public Vehicle() {
super();

}

// 有参构造方法
public void Vehicle(String brand, String color) {
this.brand = brand;
this.color = color;
}

public void Vehicle(String brand, String color, Double speed) {
this.brand = brand;
this.color = color;
this.speed = speed;
}

// 重写
@Override
public String toString() {
return "Vehicle [brand=" + brand + ", color=" + color + ", speed=" + speed + "]";
}

// 用打印语句描述汽车奔跑的功能
public void run() {
System.out.println("汽车品牌:"+this.brand+"\n颜色:"+this.color+"\n速度:"+this.speed);
}

}

Car.java

package lianxi;

public class Car extends Vehicle{
// 属性
public Integer loader;

// set() 和 get()方法
public Integer getLoader() {
return loader;
}
public void setLoader(Integer loader) {
this.loader = loader;
}

// 无参构造方法
public Car() {
super();

}

// 有参构造方法
public void Car(String brand, String color, Double speed,Integer loader) {
this.brand = brand;
this.color = color;
this.speed = speed;
this.loader = loader;
}

// 重写
/*
* 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!
* 重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。
* 重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。
* 例如: 父类的一个方法申明了一个检查异常 IOException,但是在重写这个方法的时候不能抛出 Exception 异常,
* 因为 Exception 是 IOException 的父类,只能抛出 IOException 的子类异常。
* */
@Override
public String toString() {
return "Car [loader=" + loader + "]";
}

// 用打印语句描述轿车奔跑的功能
public void run() {
System.out.println("汽车品牌:"+this.brand+"\n颜色:"+this.color+"\n速度:"+this.speed+"\n核载人数:"+this.loader);
}

}

RunTest.java

package lianxi;

import org.junit.Test;

public class RunTest {

@Test
public void runTest() {
Vehicle ve = new Vehicle();
ve.Vehicle("benz","black");
ve.run();

ve.Vehicle("benz","black",300.0);
ve.run();
}

@Test
public void runTest2() {
Car ca = new Car();
ca.Car("Honda","red",300.0,2);
ca.run();
}

}

备注:1、我不是用main()方法来创建一个品牌为“benz”、颜色为“black”的汽车 和 创建一个品牌为“Honda”、颜色为“red”,载人数为2人的轿车的;

   我是用测试类来创建的。

   2、测试类使用方法:鼠标移到测试方法处,点击鼠标右键,如下图所示:

    

javaSE练习13——(知识点:类的继承 方法的覆盖)的更多相关文章

  1. Objective-c 类的继承 方法重写 方法重载

    一.类的继承 Objective-c中类的继承与C++类似,不同的是Objective-c不支持多重继承,一个类只能有一个父类,单继承使Objective-c的继承关系很简单,易于管理程序. Obje ...

  2. JS中的类,类的继承方法

    大牛请无视此篇! 首先我们定义一个类,方法很简单,就像我们定义函数一样,只不过我们为了与函数区分,名称首字母要大写,看代码: function Person (){ } 这就是一个很简单的Poson类 ...

  3. java 19 -13 FIle类的一些方法2

    package zl_file; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; ...

  4. es6中对象的类与继承方法

    对于对象,我一直搞不清楚到底是该如何去继承,如何去书写.在熟练es6之后,终于会尝试写出来了. 代码如下: //我们假定父类为person,子类为man class person{ construct ...

  5. Java继承方法隐藏(覆盖)

    方法隐藏 一个类从其超类继承所有非私有静态方法.在子类中重新定义继承的静态方法称为方法隐藏.子类中的重定义静态方法隐藏其超类的静态方法.在类中重定义非静态方法称为方法覆盖.关于方法隐藏的重定义方法(名 ...

  6. python3 面向对象、类、继承、组合、派生、接口、子类重用父类方法

    对象是特征(变量)与技能(函数)的结合体而类是一系列对象共同的特征与技能的集合体 class teacher: lesson = "python" def __init__(sel ...

  7. python类,魔术方法等学习&&部分ssti常见操作知识点复习加深

    python类学习&&部分ssti常见操作知识点复习加深 在做ssti的模块注入的时候经常觉得自己python基础的薄弱,来学习一下,其实还是要多练习多背. 在python中所有类默认 ...

  8. C++ primer plus读书笔记——第13章 类继承

    第13章 类继承 1. 如果购买厂商的C库,除非厂商提供库函数的源代码,否则您将无法根据自己的需求,对函数进行扩展或修改.但如果是类库,只要其提供了类方法的头文件和编译后的代码,仍可以使用库中的类派生 ...

  9. C#类的继承,方法的重载和覆写

    在网易云课堂上看到唐大仕老师讲解的关于类的继承.方法的重载和覆写的一段代码,注释比较详细,在此记下以加深理解. 小总结: 1.类的继承:允许的实例化方式:Student t=new Student() ...

随机推荐

  1. winform列标题高度无法改变

    datagridview行为里把ColumnHeadersHeightSizeMode属性设置为EnableResizing 但好像会导致横向滚动条从底部跑到了中间,还不知道这个BUG的原因,将Col ...

  2. oracle为IN OUT变量或OUT变量赋值时提示“表达式''不能用作赋值目标”

    是因为IN OUT变量和OUT变量是要输出的,不能赋给它常量值,这样它就不能再被赋值而输出了,所以是禁止赋常量值的,比如''也是常量值,也不可以赋给这两种类型的变量,如果不能把存储过程中的其他变量赋给 ...

  3. 你必须知道的----C语言笔试面试中经典易错的一些知识点(持续更新)

    1. 关于二级指针的解析和引用 1.1  二级指针意义  二级指针存放的是一级指针的地址    Ex: Int a = ; Int *p = &a; Int **q = &p; 1.2 ...

  4. TX1 文字界面启动与root用户自动登录设置

    设置默认文字启动界面 更改/boot/extlinux/extlinux.conf文件,在最后一行的末尾添加 text. 设置自动登录 在/etc/init/tty1.conf文件末尾添加: exec ...

  5. spring配置文件中导入约束的详细步骤

    这里先以<beans>元素为例: 首先在eclipse中引入相关约束: 点击OK后,这个约束就被引入到eclipse中了,这一步的意义在于:就算你处于脱机情况下(不能联网),也能给你提示. ...

  6. 112th LeetCode Weekly Contest Minimum Increment to Make Array Unique

    Given an array of integers A, a move consists of choosing any A[i], and incrementing it by 1. Return ...

  7. 江西理工大学南昌校区排名赛 C: 单身狗的地图游戏

    题目描述 萌樱花是一只单身狗. 萌樱花今天决定去喜欢的学妹家玩,但他不记得路,于是他拿出有n个点的完全图,选取了k条不同的路. 完全图:n 个点的图中任意两个点之间都有一条边相连,所以有 n*(n-1 ...

  8. flask综合案例

    一.项目准备 1.新建项目目录students,并创建虚拟环境 mkvirtualenv students 2.安装依赖环境 pip install flask==0.12.4 pip install ...

  9. DOC窗口之cd命令(windows)

    cd的全称是Change Directory,改变文件夹,也就是切换路径.后面可以接驱动器符号.完整路径和相对路径. 通常win+R,输入cmd,便会看到以下界面, 通常,这个命令下并没有我们想要处理 ...

  10. 小问题总结:鼠标点击到输入框(input)里的时候,输入框的提示消失,鼠标再移开,输入框提示出现

    问题如标题: 鼠标点击到输入框(input)里的时候,输入框的提示消失,鼠标再移开,输入框提示出现.如图所示:   做法如下: <input type="text" name ...