8.2    继承(inheritance):
继承是指在类之间共享属性和方法。继承关系是一种层次关系。在继承关系中位于顶部的类称为超类(或基类),位于下面的类称为子类(或派生类)。
类型转换(type casting):是强制一个数据从一种类型转换为另一种类型。方法是通过在待转换的数据前加一对含有新类型名称的括号实现。

8.4    方法重写(method overriding)
多态性的实现:方法重载和方法重写。
方法重载指同一类中可以存在具有相同名称的不同方法,通过它们的参数列表加以区分。
方法重写指超类中的方法,可以在子类中重写。

不同的方法:在方法重载中通过不同的参数列表相互区分,在方法重写中通过隶属的对象的不同相互区分。

8.5    abstract
抽象类(abstract class):不可以创建其对象,仅能作为创建其他类的基类。
抽象方法(abstract method):强制所有的子类必须实现该方法。
注:如果子类声明成abstract class,那么从超类继承来的abstract method也可以不实现。

8.6 final
(final class):该类不能被继承。
(final method):该方法不能被重写。
注:(final variable):就是常量,与面向对象无关。

8.8    包装类和autoboxing
对于每个基本类型,Java都有一个对应的类,这个类将数据类型包装其中,称为包装类。

自测题:
1。解释什么是继承?
继承是指在类之间共享属性和方法。继承关系是一种层次关系,也被称为a-kind-of关系。

2。在UML类图中如何描述继承关系?
用空心的三角形表示继承关系,三角形的尖指的是基类。

3。在Java中,使用哪个关键字声明一个类是另一个类的子类?
class 子类 extends 基类,用extends关键字代表继承关系。

4。区分方法重写和方法重载的不同。
多态性的实现:方法重载和方法重写。
方法重载指同一类中可以存在具有相同名称的不同方法,通过它们的参数列表加以区分。
方法重写指超类中的方法,可以在子类中重写。
不同的方法的相互区分:在方法重载中通过不同的参数列表相互区分,在方法重写中通过隶属的对象的不同相互区分。

5。解释什么是类型转换,并描述Java中类型转换是如何实现的。
强制类型转换(typecast):强制一个数据从一种数据类型转换为另一种数据类型。
通过在待转换的数据前加一对含有新类型名称的括号实现。

6。解释abstract和final修饰符分别应用于类和方法时的作用。
abstract class表示这个类为抽象类,不能创建对象,只能作为其他类的基类。
abstract method表示这个方法是抽象方法,没有实现,子类如果要实例化,必须重写这个方法。
final class表示这个类为最终类,不能被继承。
final method表示这个方法是最终的方法,子类不能重写。

编程练习:代码附件
1.    ExtendedOblong.java    ExtendedOblongTester.java
2.    Vehicle.java        SecondHandVehicle.java

《Java大学教程》—第8章 通过继承扩展类的更多相关文章

  1. 正在学习的Java大学教程

    推荐本书<Java大学教程> 看的人比较少,我也是多年不看书了,基于教程一般选国外的方法,从图书馆选了本书. 看了一半,感觉书的内容比较认真,对于基本的Java知识都算介绍全了,而且全书是 ...

  2. “全栈2019”Java第五十二章:继承与初始化详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  3. “全栈2019”Java第四十六章:继承与字段

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  4. “全栈2019”Java第四十四章:继承

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  5. 《Java大学教程》—第14章 抽象、继承和接口

    自测题:1.    解释抽象和抽象数据类型的概念.P333抽象的概念是仅仅关注对象可以完成什么工作,而不必担心如何完成工作的细节.类模板通常被称为抽象数据类型.因为这类数据暴露给用户的所有信息仅仅是方 ...

  6. 《Java大学教程》—第22章 多线程程序

    22.2 进程(process):P551时间切片(time-slicing):处理器只是完成了一个任务的一部分工作,然后完成下一个任务的一部分工作,因为处理吕每次完成工作的时间都非常短,因此看起来这 ...

  7. 《Java大学教程》—第13章 程序包

    接下来,是第二学期的内容,也是相对深入的Java学习. 自测题:1.    在类的开发过程中,程序包的作用是什么?P321程序包是为了方便定位和部署类,还可以避免将来类之间出现名称冲突. 2.    ...

  8. Cobalt Strike系列教程第六章:安装扩展

    Cobalt Strike系列教程分享如约而至,新关注的小伙伴可以先回顾一下前面的内容: Cobalt Strike系列教程第一章:简介与安装 Cobalt Strike系列教程第二章:Beacon详 ...

  9. 《Java大学教程》—第24章 Java的背景

    本章主要介绍的是Java的背景知识,通过了解历史知道Java与其他语言的区别,以便更好选择在什么场景下使用Java. 24.2    语言的尺寸Java语言短小.紧凑,以C++为基础,放弃了一些特定的 ...

随机推荐

  1. javascript小实例,在页面中输出当前客户端时间

    时间对象(Date())比较简单,本文旨在为初学者入门使用,大牛可略过! 本文承接基础知识实例,说一下实例的要求: 在页面中输出当前客户端时间(2015年1月1日星期一10:10:10这样的格式),每 ...

  2. IIS Tomcat共享80端口

    为什么有这种需求, 原因是这样的, 公司有一个Java的web项目,在另一台服务器A上,最近老板一时兴起,想把他合并到这台稳定点的服务器B上,服务器B上使用IIS来寄宿asp.net 网站, 怎么办呢 ...

  3. 从零开始学安全(二十一)●PHPSPL异常

  4. 向Spring容器中注册组件的方法汇总小结

    1.通过xml定义 <bean class=""> <property name="" value=""></ ...

  5. linux中make的用法

    一.linux中make的用法 目的:       基本掌握了make 的用法,能在Linux系统上编程.环境:       Linux系统准备:       准备三个文件:file1.c, file ...

  6. Spring Data REST API集成Springfox、Swagger

    原文: Documenting a Spring Data REST API with Springfox and Swagger 使用Spring Date REST,你可以迅速为Spring Da ...

  7. 异常:getHibernateFlushMode is not valid without active transaction; nested exception is org.hibernate.HibernateException: getHibernateFlushMode is not valid without active transaction getHibernateFlu

    场景: 在使用spring整合hibernate调用的HibernateTemplate时报错解决: 在spring配置文件中添加事务的配置 <bean id="hibernateTr ...

  8. 兼容发布&小流量概述

    背景 re消息limit上线之前有这样的问题: 1.存量用户,会感知到新功能: 2.后端.前端上线间隔期间,如果没做兼容,涉及到接口数据格式变更,会导致C端拉取数据报错: 3.改模板配置,会导致老信息 ...

  9. 事件处理程序(HTML)

    HTML事件处理程序 通过设置HTML标签特性来绑定事件处理程序. 处理方式(如图): 1:会创建一个封装元素属性值的函数 2:会在这个函数中创建一个event事件对象 <form> &l ...

  10. Laravel 系列入门教程(二)【最适合中国人的 Laravel 教程】

    本篇文章中,我将跟大家一起体验 Laravel 框架最重要的部分——路由系统. 如果你读过 2015 版的教程,你会发现那篇文章里大书特书的 Auth 系统构建已经被 Laravel 捎带手给解决了. ...