当前课程知识点:Java程序设计 >  第三章 类的重用 >  3.1.1-3.1.2-类继承的概念和语法 >  3.1.1-3.1.2-类继承的概念和语法

返回《Java程序设计》慕课在线视频课程列表

3.1.1-3.1.2-类继承的概念和语法在线视频

3.1.1-3.1.2-类继承的概念和语法

下一节:3.1.3-隐藏和覆盖

返回《Java程序设计》慕课在线视频列表

3.1.1-3.1.2-类继承的概念和语法课程教案、知识点、字幕

大家好欢迎回来继续学习

JAVA语言程序设计

这一节我们来学习

类继承的概念和语法

继承是一种

由已有类为基础去产生新类

去设计新类的这么一种机制

它是面向对象程序设计的

重要特征之一

用这种类继承的机制

我们可以根据已有类

来生成新的类

那么新类它就具有了

已有类的所有的属性和行为

在JAVA中只支持单继承

也就是说每一个子类

只能有一个直接超类

我们叫那个已有的

为基础的那个类叫做超类

也叫做(基类)

也叫做(副类)

在JAVA中更多的使用

超类这个术语

根据已有的类

产生出来的那个新类

在JAVA中我们称它为子类

在面向对象的概念中

我们也称它为派生类

在JAVA中更多的是用subclass

子类这个概念

那超类和子类

之间的关系是什么呢

在超类中规定了

所有子类都应该有的属性和行为

只要继承这个超类

那么它的所有属性和行为

就都继承过来了

继承过来以后

当然你可以去改造

也可以再扩展

所以在超类中

给出了所有子类

共同的属性行为

而子类 每一种子类

是这个超类的

更具体化的这样一个

更细化的这样一个类

或者说更下层的概念

继承机制可以提高

这个程序的抽象程度

可以提高代码的可重用性

那么通俗的来讲

子类对象与超类对象之间

存在着是一个 是一种

这样的关系

这个我们在后面例题中会看到的

子类对象从外部来看

它应该包括与超类相同的接口

比如说超类有多少

对外的公共接口 公共服务

那么子类都应该有

除此而外子类

还可以具有更多的方法

和更多的数据成员

也就是属性

也就是说我们在超类的基础之上

不仅继承 而且可以扩展

那么子类的对象

它存储的到底是什么呢

子类这个类里面

它包含了超类的

所有变量和方法

但是子类的对象里面

存的仅仅是从超类

继承过来的那些属性

还有自己本类扩展新增的属性

那么我们知道

类的方法它的方法代码

它只存一份代码的

它不会在每个对象中存的

每个对象里面它只存数据

接下来我们就来具体看一下

在JAVA语法中

怎么表达这个继承关系

我们来看一下继承的语法

我们看在类定义的时候

在类名之后

如果加一个extends关键字

在extends关键字后面

再加一个超类的类名

Super closs 超类的类名

那么这就构成了一个

类继承关系的声明

也就是说明了

我正在定义的这个类

它是继承自某个超类

是这样的一个含义

举个例子

比如说在某一个系统中

我们要管理三类人

一类就是最简单的

作为一个普通的人出现

比如说它既包括

你企业的员工 也包括客户

或者是其它的来访者等等的

只要登记过的

都在这个系统里面要表示

那因为它是很一般的

就是一个人的概念

那我们可以用一个Person

人这个类来表示它

比这个人这个概念

更具体一点的呢

还可以有企业员工的概念

企业里面所有员工

这样一个概念

那么它比泛泛的讲一个人

就更具体一些

那企业的员工又是有分工的

有不同的职别的

如果说它里面的某一种人

他的管理人员Manager

又是更具体的一种人了

是比泛泛的讲企业员工

更具体的一个人

所以我们就可以有

这样一个继承关系图来表示它

让这个Employee这个雇员类

继承Person人这个类

它比人是更具体的一个分类了

对吧

然后再让manager

管理人员类去继承雇员类

它是雇员中更具体的一种雇员

所以它们之间肯定存在着

是一个 是一种这种关系

比如说一个企业的雇员

他肯定是一种人

那么这个企业里面的管理人员

它肯定是一种雇员

存在这样的关系

我们就可以用

类的继承关系来设计它

现在我们来看

这个类继承关系

它的代码实现

在这里看到

我们看到定义为一个Person类

人员类

这里面就是有一个属性是姓名

然后有一个方法是name

获得这个姓名

它是一个很一般的

就是普通的人的类

那接下来这个Employee

这个雇员类

它就是更具体的一种人

它是一种人

但是它是更专门的一种人

这样说吧

所以我们定义这个

Employee雇员类

它就继承了extends Person

继承了Person这个类

这个时候Person类里面的

name姓名

和name这个获取姓名的

这个方法肯定也都继承过来了

除此而外

它还定义了自己的

employee Number

员工编号

和getmployee Number

就是获取员工编号

这样一个属性和一个方法

然后再看Manager

它是一种更具体的

更专门的员工

所以它又去继承

这个Employee类

然后它又声明了自己的

responsibilities

它的职责这个属性

还有getResponsibilities

这个获取它的职责

这样一个方法

更具体的属性和方法

所以我们看到

最一般的类是Person

在Person的基础上扩展

形成了Employee类

或者说Employee继承了Person

然后Manager

又继承了Employee

Manager里面就具有了

从直接和间接的

超类继承过来的所有东西

它有了name

有了employee Number

它有了name方法

有了employee Number方法

此外自己还又声明了

responsibilities

还有getResponsibilities

这些自己新增的

好 接下来我们来测试一下

这里构造了一个Employee对象

然后给它的一些属性附值

然后调用它的name方法

这个name方法

是它从它的超类继承来的

而getEmployeeNumber方法

是它自己定义的方法

再接下来再构造一个

Manager对象

也是给它的一些属性设置值

那么这些属性里的name

是从它的超类的超类继承来的

Employee

是从它直接超类继承来的

(英文)是它自己

自己声明的

那同样的方法也是

这里的方法调用它的

包括了从间接的超类继承的

从直接的超类继承的

还有自己声明的

所以我们通过这个例子

简单的体会到了类的继承

接下来我们再看一个例子

这个例子我们要体会一下

从超类继承的成员

有一些是不能直接访问的

那我们来看这个例子

在这个class B类里边

它声明的有public属性

有protected属性

还有private属性

它的方法是一个getB

是一个公有接口

可以对外提供服务的

public方法

好 那类A继承了类B

我们来看在类A中

我们尝试直接访问变量A

是可以的

因为它是超类中的公有的变量

继承过来还是公有的可以访问

但是我们尝试访问这个变量B

就不允许了

编译就要出错 为什么呢

因为B是私有的

也就是说私有的属性

私有的变量

继承到了子类中以后

是不能直接访问的

那你特别需要访问它怎么办呢

就看你的超类中

对于这个变量

有没有设置访问接口

这里有B

就是获取私有数据成员B的

值的这么一个方法

所以我们可以调用getB

通过公有接口去访问

它的私有成员

那么C这个属性是println

那么在它的子类中

是可以直接访问的

这一节我们学习了

类继承的概念和语法

并且通过简单的例题观察了

如何从一个已有的类

去派生出新的类

好这一节的内容就是这样

Java程序设计课程列表:

第一章 Java语言基础知识

-1.0-导学

--1.0-导学

--JDK的安装与配置01

--JDK的安装与配置02

--JDK的安装与配置03

--编辑并执行第一个java程序01

--编辑并执行第一个java程序02

--编辑并执行第一个java程序03

--eclipse的安装和配置01

--eclipse的安装和配置02

--eclipse的安装和配置03

--使用eclipse进行Java的开发01

--使用eclipse进行Java的开发02

--使用eclipse进行Java的开发03

-1.1-Java与面向对象程序设计简介

--1.1.1 Java与面向对象程序设计简介

--第一章 Java语言基础知识--1.1-Java与面向对象程序设计简介

-1.2-基本数据类型与表达式

--1.2.1-基本数据类型与表达式

-第一章 Java语言基础知识--1.2-基本数据类型与表达式

-1.3-数组

--1.3.1-数组

-第一章 Java语言基础知识--1.3-数组

-1.4-算法的流程控制

--1.4.1-算法的流程控制

--第一章 Java语言基础知识--1.4-算法的流程控制

-1.5-第一章小结

--1.5.1-第一章小结

-第一章编程练习题

-课件

--外部链接

第一章续-习题讲解视频

-Java环境配置、Eclipse使用、Helloworld程序详解

--JAVA的安装和配置

--编写并执行第一个Java程序及Java的跨平台性

--eclipse的安装和配置

--使用eclipse建立Java项目、编写和运行Java程序

--Java注释和Eclipse中的注释操作

--详解HelloWorld程序

-Java数据类型

--Java数据类型介绍

--Java整数类型

--Java浮点类型

--Java字符类型和布尔类型

--数据类型实战

--数据类型转换

--Java强制类型转换精度损失示例与表达式中的数据类型转换

-Java数组

--Java数组介绍、声明与使用

--一维数组的初始化与length属性

--数组索引的原理与使用

--二维数组的介绍与使用

-Java变量

--Java的变量

-命令行参数

--命令行参数的介绍

第二章 类与对象

-2.0-导学

--2.0-导学

-2.1-面向对象方法的特性

--2.1-面向对象方法的特性

--第二章 类与对象--2.1-面向对象方法的特性

-2.2-1-类声明与对象创建

--2.2-1-类声明与对象创建

--第二章 类与对象--2.2-1-类声明与对象创建

-2.2-2-数据成员

--2.2-2-数据成员

--第二章 类与对象--2.2-2-数据成员

-2.2-3-方法成员

--2.2-3-方法成员

--第二章 类与对象--2.2-3-方法成员

-2.2-4-包

--2.2-4-包

--第二章 类与对象--2.2-4-包

-2.2-5-类的访问权限控制

--2.2-5-类的访问权限控制

--第二章 类与对象--2.2-5-类的访问权限控制

-2.3-1-对象初始化

--2.3-1-对象初始化

--第二章 类与对象--2.3-1-对象初始化

-2.3-2-内存回收

--2.3-2-内存回收

--第二章 类与对象--2.3-2-内存回收

-2.4-枚举类

--2.4-枚举类

--第二章 类与对象--2.4-枚举类

-2.5-应用举例

--2.5-应用举例

-2.6-第2章小结

--2.6-第2章小结

-第二章编程练习题

-课件

--第二章课件

第三章 类的重用

-3.0-导学

--3.0-导学

-3.1.1-3.1.2-类继承的概念和语法

--3.1.1-3.1.2-类继承的概念和语法

--第三章 类的重用--3.1.1-3.1.2-类继承的概念和语法

-3.1.3-隐藏和覆盖

--3.1.3-隐藏和覆盖

--第三章 类的重用--3.1.3-隐藏和覆盖

-3.2-Object 类

--3.2-Object 类

--第三章 类的重用--3.2-Object 类

-3.3-终结类与终结方法

--3.3-终结类与终结方法

--第三章 类的重用--3.3-终结类与终结方法

-3.4-抽象类

--3.4-抽象类

--第三章 类的重用--3.4-抽象类

-3.5-泛型

--3.5-泛型

--第三章 类的重用--3.5-泛型

-3.6-类的组合

--3.6-类的组合

-3.7-小结

--3.7-小结

-第三章编程练习题

-课件

--课件

第四章 接口与多态

-4.0-导学

--导学

-4.1-接口

--接口

--第四章 接口与多态--4.1-接口

-4.2.1-4.2.2-类型转换

--类型转换

--第四章 接口与多态--4.2.1-4.2.2-类型转换

-4.2.3-方法的查找

--方法的查找

--第四章 接口与多态--4.2.3-方法的查找

-4.3-多态的概念

--多态的概念

--第四章 接口与多态--4.3-多态的概念

-4.4-多态的应用举例

--多态的应用举例

--第四章 接口与多态--4.4-多态的应用举例

-4.5-构造方法与多态性

--构造方法和多态性

--第四章 接口与多态--4.5-构造方法与多态性

-4.6-本章小结

--本章小结

-第四章编程作业

-课件

--课件

第五章 输入输出

-5.0-导学

--5.0-导学

-5.1.1-5.1.2-异常处理的概念

--5.1.1-5.1.2-异常处理的概念

--第五章 输入输出--5.1.1-5.1.2-异常处理的概念

-5.1.3-5.1.5-异常的处理

--5.1.3-5.1.5-异常的处理

--第五章 输入输出--5.1.3-5.1.5-异常的处理

-5.2-输入输出流的概念

--输入输出流的概念

--第五章 输入输出--5.2-输入输出流的概念

-5.3.1-写文本文件

--写文本文件

--第五章 输入输出--5.3.1-写文本文件

-5.3.2-读文本文件

--读文本文件

--第五章 输入输出--5.3.2-读文本文件

-5.3.3-写二进制文件

--写二进制文件

--第五章 输入输出--5.3.3-写二进制文件

-5.3.4-读二进制文件

--读二进制文件

-5.3.5-File类

--File类

-5.3.6-处理压缩文件

--处理压缩文件

-5.3.7-对象序列化

--对象序列化

-5.3.8-随机文件读写

--随机文件读写

-5.4-本章小结

--本章小结

-课件

--课件

第六章 对象群体的组织

-6.0-导学

--导学

-6.1-Java集合框架介绍

--Java集合框架介绍

--第六章 对象群体的组织--6.1-Java集合框架介绍

-6.2-主要接口及常用的实现类

--6.2-主要接口及常用的实现类

--第六章 对象群体的组织--6.2-主要接口及常用的实现类

-6.3-常用算法

--常用算法

-6.4-数组实用方法

--6.4-数组实用方法

-6.5-基于动态数组的类型(Vector, ArrayList)

--基于动态数组的类型(Vector, ArrayList)

-6.6-遍历Collection

--遍历Collection

-6.7-Map接口及其实现

--Map接口及其实现

-6.8-第6章小结

--第6章小结

-课件

--课件

第七章 图形用户界面

-7.0-导学

--导学

-7.1-绘图

--绘图

-7.2-Swing基础

--Swing基础

-7.3-Swing的层次

--Swing的层次

-7.4-布局管理

--布局管理

-7.5-内部类

--内部类

-7.6-事件处理的基本概念

--事件处理的基本概念

-7.7-事件派发机制

--事件派发机制

-7.8-顶层容器

--7.8-顶层容器

-7.9-中间层容器(一)

--7.9-中间层容器(一)

-7.10-中间层容器(二)

--7.10-中间层容器(二)

-7.11-原子组件(一)

--7.11-原子组件(一)

-7.12-原子组件(二)

--7.12-原子组件(二)

-7.13-原子组件(三)

--7.13-原子组件(三)

-7.14-其它Swing特性

--7.14-其它Swing特性

-7.15-第7章小结

--7.15-第7章小结

-课件

--课件

3.1.1-3.1.2-类继承的概念和语法笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。