Java编程之继承问题代码示例

课堂练习:

–在包bzu.aa中定义一个交通工具类(Vehicle):

1、属性——载客量(capacity)

2、方法

(1)无参构造方法(给capacity初始化值为2,并输出“执行交通工具类的无参构造方法。”)

(2)有参构造方法(传参给capacity初始化,并输出“执行交通工具的有参构造方法。”)

(3)capacity的set、get方法

(4)print方法:输出capacity

–在包bzu.aa中定义一个汽车类(Car)继承交通工具类:

1、属性——speed

2、方法

(1)无参构造方法(给speed初始化值为0,并输出“执行汽车类的无参构造方法。”)

(2)有参构造方法(用super关键字调用父类的有参构造方法,传参给speed初始化,并输出“执行汽车类的有参构造方法。”)

(3)加速(speedup):speed+10并返回speed;

(4)减速(speeddown):speed-15并返回speed;

(5)重写print方法:输出speed和capacity。

–在包bzu.bb中定义一个final的公交车类(Bus),继承汽车类:

1、属性——载客量(capacity)<变量隐藏>

2、方法

(1)无参构造方法(给capacity初始化值为20,并输出“执行公交车类的无参构造方法。”)

(2)有参构造方法(用super关键字调用父类的有参构造方法,传参给capacity初始化,并输出“执行公交车类的有参构造方法。”)

(3)重写print方法:输出speed、 capacity及父类的capacity。

–在包bzu.bb中编写一个主类Test:

1、主函数

(1)、调用无参构造方法创建一个Car的对象car;调用加速方法将速度加至50,调用print方法;调用减速方法,将速度减至20,调用print方法。

(2)、调用有参构造方法创建一个Bus的对象bus;调用print方法。 ##

Vehicle类:

package bzu.aa;
public class Vehicle {
  protected int capacity;
  public Vehicle (){
    capacity=2;
    System.out.println("执行交通工具类的无参构造方法.");
  }
  public Vehicle(int capacity){
    //super();
    this.capacity=capacity;
    System.out.println("执行交通工具类的有参构造方法.");
  }
  public int getCapacity(){
    return capacity;
  }
  public void setCapacity(int capacity){
    this.capacity=capacity;
  }
  public void print(){
    System.out.println("交通工具的载客量为:"+capacity);
  }
}
Car类:
package bzu.aa;
public class Car extends Vehicle {
  protected int speed;
  public Car(){
    super();
    speed=0;
    System.out.println("执行汽车类的无参构造方法.");
    }
  public Car(int speed){
    super(6);
    this.speed=speed;
    System.out.println("执行汽车类的有参构造方法.");
    }
  public int speedUp(int speed){
    this.speed=speed+10;
    return speed;
  }
  public int speedDown(int speed){
    this.speed=speed-10;
    return speed;
  }
  public void print(){
    System.out.println("汽车的载客量为:"+capacity+";汽车的速度为:"+speed);
  }
}
Bus类:
package bzu.bb;
import bzu.aa.Car;
public final class Bus extends Car{
  public int capacity;
  public Bus(){
    super();
    capacity=20;
    System.out.println("执行公交车类的无参构造方法.");
  }
  public Bus(int capacity){
    super(40);
    this.capacity=capacity;
    System.out.println("执行公交车类的有参构造方法.");
  }
  public void print(){
    System.out.println("公交车的的载客量为:"+capacity+";公交车的速度为:"+speed+";汽车类的载客量为:"+getCapacity());
  }
}
Test类:
package bzu.bb;
import bzu.aa.Car;
public class Test {
  public static void main(String[] args) {
    Car car=new Car();
    car.speedUp(40);
    car.print();
    car.speedDown(30);
    car.print();
    Bus bus=new Bus(20);
    bus.print();
  }
}

运行结果:

总结

以上就是本文关于Java编程之继承问题代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友继续参阅本站:Javaweb应用使用限流处理大量的并发请求详解、Java线程之程安全与不安全代码示例、java集合中的list详解等,有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对本站的支持!

(0)

相关推荐

  • 详解java中继承关系类加载顺序问题

    详解java中继承关系类加载顺序问题 实例代码: /** * Created by fei on 2017/5/31. */ public class SonClass extends ParentClass{ public SonClass(){ System.out.println("SonClass's constructor"); } { System.out.println("SonClass's block");} static { System.out

  • Java异常继承结构解析_动力节点Java学院整理

    Java异常类层次结构图: 异常的英文单词是exception,字面翻译就是"意外.例外"的意思,也就是非正常情况.事实上,异常本质上是程序上的错误,包括程序逻辑错误和系统错误.比如使用空的引用.数组下标越界.内存溢出错误等,这些都是意外的情况,背离我们程序本身的意图.错误在我们编写程序的过程中会经常发生,包括编译期间和运行期间的错误,在编译期间出现的错误有编译器帮助我们一起修正,然而运行期间的错误便不是编译器力所能及了,并且运行期间的错误往往是难以预料的.假若程序在运行期间出现了错误

  • Java Collections集合继承结构图_动力节点Java学院整理

    面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式. 数组虽然也可以存储对象,但长度是固定的:集合长度是可变的,数组中可以存储基本数据类型,集合只能存储对象. 集合类的特点:集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象. 集合框架图 Collection (集合的最大接口)继承关系 --List 可以存放重复的内容 --Set 不能存放重复的内容,所以的重复内容靠hashCode()和equals()两个

  • JAVA基础之继承(inheritance)详解

    继承(inheritance)是Java OOP中一个非常重要的概念.继承是在复用已存在的类的方法和域的基础上,还可以添加新的方法和域.Java用extends关键字来表示继承关系(is-a).被继承的类称为超类(superclass).基类(base class).父类(parent class),而新类被称为子类(subclass).派生类(derived class)或孩子类(child class). 1.class:编程语言中的基本单位.将数据和功能封装到了一起. 2.基类包含其所有导

  • Java 继承方法实例详解

    继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类.继承可以理解为一个对象从另一个对象获取属性的过程. 如果类A是类B的父类,而类B是类C的父类,我们也称C是A的子类,类C是从类A继承而来的.在Java中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类 继承中最常使用的两个关键字是extends和implements. 这两个关键字的使用决定了一个对象和另一个对象是否是IS-A(是一个)关系. 通过使用这两个关键字,我们能实现一个对象获取另一个对象的属性. 所有Jav

  • Java IO流体系继承结构图_动力节点Java学院整理

    Java IO体系结构看似庞大复杂,其实有规律可循,要弄清楚其结构,需要明白两点: 1. 其对称性质:InputStream 与 OutputStream, Reader 与 Writer,他们分别是一套字节输入-输出,字符输入-输出体系 2. 原始处理器(适配器)与链接流处理器(装饰器) 其结构图如下: Reader-Writer体系 1. 基类 InputStream与OutputStream是所有字节型输入输出流的基抽象类,同时也是适配器(原始流处理器)需要适配的对象,也是装饰器(链接流处

  • Java中继承thread类与实现Runnable接口的比较

    Java中线程的创建有两种方式:  1.  通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中 2.  通过实现Runnable接口,实例化Thread类 在实际应用中,我们经常用到多线程,如车站的售票系统,车站的各个售票口相当于各个线程.当我们做这个系统的时候可能会想到两种方式来实现,继承Thread类或实现Runnable接口,现在看一下这两种方式实现的两种结果. package com.threadtest; class MyThread extends T

  • 老生常谈 Java中的继承(必看)

    Java作为一面向对象的语言,具备面向对象的三大特征--继承,多态,封装. 继承顾名思义,继任,承接,传承的意思.面向对象的语言有一个好处,就是可以用生活中的例子来说明面向对象的特性.那么我们先来看看生活中的继承关系有哪些?最常见的:父母子女:汽车,电动车,自行车和车.无论哪种车,都有具备车的特性.再比如说:家里面的电饭锅,电磁炉,电冰箱.他们都属于电器类,都具有名字这个属性,也都需要用电这个方法.如果在程序中我们一个个类去把这些重复的代码都写上去,那不是浪费时间和精力吗?联系之前的知识,我们能

  • Java编程之继承问题代码示例

    课堂练习: –在包bzu.aa中定义一个交通工具类(Vehicle): 1.属性--载客量(capacity) 2.方法 (1)无参构造方法(给capacity初始化值为2,并输出"执行交通工具类的无参构造方法.") (2)有参构造方法(传参给capacity初始化,并输出"执行交通工具的有参构造方法.") (3)capacity的set.get方法 (4)print方法:输出capacity –在包bzu.aa中定义一个汽车类(Car)继承交通工具类: 1.属性-

  • Java编程实现帕斯卡三角形代码示例

    源程序揭秘 杨辉三角形性质: 每行数字左右对称,由 1 开始逐渐变大,然后变小,回到 1. 第 n 行的数字个数为 n 个. 第 n 行数字和为 2^(n-1) . 每个数字等于上一行的左右两个数字之和.可用此性质写出整个杨辉三角形. 第 n 行的第 1 个数为 1,第二个数为 1× (n-1) ,第三个数为 1× (n-1) × ( n-2) /2,第四个数为 1× (n-1) × (n-2) /2× (n-3) /3-依此类推. 算法原理1: 使用一个二维数组 yh[][] 存储杨辉三角形的

  • Java编程实现直接插入排序代码示例

    算法描述:对于给定的一个数组,初始时假设第一个记录自成一个有序序列,其余记录为无序序列.接着从第二个记录开始,按照记录的大小依次将当前处理的记录插入到其之前的有序序列中,直至最后一个记录插入到有序序列中为止. 直接插入排序Java实现教程 示例1 public class Insert { public static void main(String[] args) { int a[] = {9,3,28,6,34,7,10,27,1,5,8}; show(a); for (int i=1;i

  • Java编程实现获取当前代码行行号的方法示例

    本文实例讲述了Java编程实现获取当前代码行行号的方法.分享给大家供大家参考,具体如下: 最近的项目中,为了实现自定义的log类,能够输出具体的代码行行号,我通过使用StackTraceElement对象实现了. 具体内容请参考下面的Demo代码.这里指出需要注意的几个问题: 1. 程序中返回的代码行行号,是新建StackTrackElement对象的那一行. 2. 可以通过传参的方法实现输出特定行行号. 具体实现代码: /** * */ package leo.demo.training; /

  • Java创建与结束线程代码示例

    本文讲述了在Java中如何创建和结束线程的最基本方法,只针对于Java初学者.一些高级知识如线程同步.调度.线程池等内容将会在后续章节中逐步深入. 创建线程 创建普通线程有两种方式,继承Thread类或实现Runnable接口.示例如下. 方法1:继承Thread类 创建方法示例: public class MyThread1 extends Thread { @Override public void run() { //TODO Auto-generated method stub supe

  • 浅谈Java多线程的优点及代码示例

    尽管面临很多挑战,多线程有一些优点使得它一直被使用.这些优点是: 资源利用率更好 程序设计在某些情况下更简单 程序响应更快 资源利用率更好 想象一下,一个应用程序需要从本地文件系统中读取和处理文件的情景.比方说,从磁盘读取一个文件需要5秒,处理一个文件需要2秒.处理两个文件则需要: 5秒读取文件A 2秒处理文件A 5秒读取文件B 2秒处理文件B --------------------- 总共需要14秒 从磁盘中读取文件的时候,大部分的CPU时间用于等待磁盘去读取数据.在这段时间里,CPU非常的

  • Java语言实现反转链表代码示例

    问题描述 定义一个函数,输入一个链表的头结点,反转该链表并输出反转后的链表的头结点.链表结点如下: public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } 思路1: 要想反转链表,对于结点i,我们要把它的next指向它的前趋,因此我们需要保存前趋结点,同时,如果我们已经把i的next重新赋值,会无法找到i的后继,因此,在重新赋值之前,我们要保存i的后继. 代码:

  • java 导入Excel思路及代码示例

    导出就是将List转化为Excel(listToExcel) 导入就是将Excel转化为List(excelToList) 一.思路分析 1.我们要做导入,实际上也就是先文件上传,然后读取文件的数据. 2.我们要有一个导入的模板,因为我们导入的Excel列要和我们的数据字段匹配上,所以我们要给它来一个规定,也就是模板. 3.按照我们公司的套路,是做了一个导入信息的临时表,用来存导入文件中的信息.每当导入的时候,我们先把表信息清空,再拿到数据放进来,然后我们对导入的数据进行检查,最后才全部导入.

  • Java将字符串写入文本文件代码示例

    一.Filewriter与File---将字符串写入文本文件 public static void main(String[] args) { File f=new File("C:\\world.txt");//新建一个文件对象,如果不存在则创建一个该文件 FileWriter fw; try { fw=new FileWriter(f); String str="hello world"; fw.write(str);//将字符串写入到指定的路径下的文件中 fw

  • Java编程枚举类实战代码分享

    本文句句走心,希望老铁们用心阅读并实战,一定会有收获的. 摘要:本文主要讨论生产环境中枚举类的使用.首先会通过对枚举类概念进行简单的介绍,引入我们讨论的主题:然后就直接进入实战部分,本文只会介绍在实战中用的比较多,也比较常用的情况,所以希望老铁可以用心体会并实践,最终化为己有:最后会大致在对枚举的 API 做了一个简单的介绍.其余没有介绍的内容,基本上在我们的生产环境中极少用到,如果有兴趣的可以自己在深入研究. 枚举 概念:枚举类型是 Java 5 中新增特性的一部分,它是一种特殊的数据类型,它

随机推荐