Java

继承

例子:请确认各类之间的关系

plane

military plane( 军事)

passenger plane ( 客机)

cargo plane ( 货物)

fighter plane ( 战斗机)

Airliner ( 民用机)

Plane

Military plane Airliner

Fighter plane

Cargo plane Passenger plane

Executive jet

Public class Employee

{

String name;

Date hireDate;

Date dateofBirth;

String jobTitle

int grade;

public String getDetails()

}

Public class Manager

{

String name;

Date hireDate;

Date dateofBirth;

String jobTitle

int grade;

String Department;

public String getDetails()

public void Guide()

}

Continue

Public class manager extends employee

{

String department;

public void Guide()

}

关键字 extends 是解决继承问题的继承

类之间的继承关系是面向对象程序设计语言的基本特征

一个类(子类)是另一个类(父类)的特例。父类是被继承的,子类是继承的

一般性(父类)和特殊性(子类)

Continue

新类继承一般类的状态和行为,并根据需要增加自己的状态和行为。

由继承而得到的类称为子类 (sub class),被继承的类称为父类 (super class)。

父类可以是自己编写的类,也可以 JAVA类库中的类。

利用继承可以有效使用代码的重复使用。

JAVA不支持多重继承,即子类只能有一个父类。

继承的定义

子类的成员有一部分是子类自己声明定义的。

另一部分是从它的父类继承的。

子类继承父类的成员变量作为自己的一个成员变量。

继承父类的方法作为自己的方法。

CONTINUE

使用关键字 extends来声明一个类是另一个类的子类。

格式如下:

class 子类名 extends 父类名

例如:

class students extends People

{

}

例子,Son是 Father的子类,而 GrandSon是 Son的子类子类和父类不在同一包中

上面的例子,前提是在同一包中。

假如不在同一包中,那么子类只继承父类的 public,public 成员。 default 成员不能被继承。

子类可以调用继承的方法来操作未被继承的变量。

x 尽管是不被 B继承的,但是 B仍旧可以通过继承方法 f()来操作 x.

成员变量隐藏

当子类中定义的成员变量只要和父类中的成员变量同名时,子类就隐藏了继承的成员变量。

方法重写(成员方法隐藏)

子类可以隐藏已继承的方法,子类通过方法重写来隐藏继承的方法。

方法重写:定义一个方法,并且这个方法的名字、返回类型、参数个数和类型与从父类继承的方法完全相同。

子类通过方法的重写可以把父类的状态和行为改变为自身的状态和行为。

子类继承父类的 speak()方法和 cry()方法,但子类通过重写 speak()隐藏了继承的 speak()方法。

Super关键字

super有两种用法:一种是子类使用 super调用父类的构造方法,另一种是子类使用 super调用被子类隐藏的成员变量和方法。

子类不继承父类的构造方法,因此子类如果想使用父类的构造方法,必须在子类的构造方法中使用关键字 super来表示。而且 super必须是子类构造方法中的第一条语句 。

子类在创建对象时,子类的构造方法总是先调用父类的某个构造方法。

CONTINUE

如果子类的构造方法没有明显指明使用父类的哪个构造方法,子类就调用父类的不带参数的构造方法。

因此如果在子类的构造方法中,没有使用关键字 super调用父类的某个构造方法,

那么默认有,super ( ),即调用父类的不带参数的构造方法。

Super操作被隐藏的成员

如果子类和父类的成员变量同名时,子类就隐藏了从父类继承的成员变量。当子类定义一个方法,并且这个方法的名字、返回类型,参数个数和类型与父类的某个方法完全相同是,子类从父类继承的这个方法将隐藏。

我们要调用父类隐藏的成员,我们可以使用

super:

super.成员变量;

super.成员方法;

Which one is added to the line 8,and the program will

be not compiled successfully?

A.public float getNum{return 4.0f}

B.public void getNum(){}

C.public void getNum(double d){}

D.public void getNum(float d){return 4.0d;}

习题

Result?

Resutl?

java 继承 ppt_理论五继承_JAVA学习课件_ppt_大学课件预览_高等教育资讯网相关推荐

  1. java利己线程_第10章 多线程2_Java程序设计与应用开发_ppt_大学课件预览_高等教育资讯网...

    第十章 多线程 杨 娟 it@126.com Java 程序设计 教学内容 ? 线程的概念 ? 多线程的实现 ? 线程的生命周期 ? 线程的中断 ? 线程的优先级 ? 同步线程 ? 小结 10.1 线 ...

  2. 西安电子科技大学java答案_第3章 数 组_西安电子科技大学:JAVA语言_ppt_大学课件预览_高等教育资讯网...

    第 3章 数组 第 3章 数 组 3.1 一维数组 3.2 二维数组 第 3章 数组 3.1 一 维 数 组 一维数组是最简单的数组, 在 Java中, 数组是作为 数组类的一个实例来处理的, 故可以 ...

  3. c语言程序设计课件数组,第五章 数组_《C语言程序设计(Visual C++ 6.0环境)》电子教案_ppt_大学课件预览_高等教育资讯网...

    1 2 3 0 [ ], (1) ( ) int a[6]; a[0]0 1 4 5 a[1] a[2] a[3] a[4] a[5] 2 3 a =* sizeof() 5.1 4 [ ] int ...

  4. html5触边反弹,第四章课件.PPT_数字电子技术基础(ppt课件)_ppt_大学课件预览_高等教育资讯网...

    第 4章 触发器电路 授课计划 教学内容 教学小结 一.授课计划 1.教学目标 1,熟练掌握基本 RS触发器的工作原理, 逻辑功能, 及钟控 RS触发器, JK触发器, D触发器的逻辑功能, 时间波形 ...

  5. 大学计算机英语PPT,MULTIP~1.PPT_计算机英语(ppt资料)_ppt_大学课件预览_高等教育资讯网...

    Copyright ? 1997 Altera Corporation 3/3/2011 P.1 Multiple Clock System Design Danny Mok Altera HK FA ...

  6. java web pdf 打印预览_java原装代码完成pdf在线预览和pdf打印及下载

    前提准备: 1. 项目中至少需要引入的jar包,注意版本: a) core-renderer.jar b) freemarker-2.3.16.jar c) iText-2.0.8.jar d) iT ...

  7. java word在线预览_java实现word转pdf在线预览(前端使用PDF.js;后端使用openoffice、aspose)...

    背景 之前一直是用户点击下载word文件到本地,然后使用office或者wps打开.需求优化,要实现可以直接在线预览,无需下载到本地然后再打开. 随后开始上网找资料,网上资料一大堆,方案也各有不同,大 ...

  8. 第十五届全国大学生智能汽车竞速比赛规则 (预览)

    竞速比赛规则 第十五届竞赛规则导读 参加过往届比赛的队员可以通过下面内容了解第十五届规则主要变化.如果第一次参加比赛,则建议对于本文进行全文阅读. 竞速比赛共分为为四个组别.详细情况参加文档第一节中的 ...

  9. 《动手学深度学习》中文第二版预览版发布

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨李沐@知乎 来源丨https://zhuanlan.zhihu ...

最新文章

  1. Activity的插件化(三)
  2. gcc编译c程序,既然第一步把头文件包含进来了为什么还要进行第四步链接,链接的是什么?...
  3. Android Studio 单刷《第一行代码》系列 06 —— Fragment 生命周期
  4. vscode浏览器打开html
  5. 【BZOJ4205】卡牌配对 最大流
  6. Android自定义控件学习(一)-----属性
  7. mysql备份优化_MySQL备份流程及优化
  8. android layout_margin的值,Android自定义ViewGroup( 支持layout_margin属性)
  9. Android iw 使用方法
  10. python实现 双向循环链表
  11. JavaScript设计模式之职责链模式
  12. Linux中设置Java程序开机自动运行
  13. 黎活明给程序员的忠告(转)
  14. java定时任务不执行_【SpringBoot】为什么我的定时任务不执行?
  15. js加载第三方字体,检测加载完成事件
  16. 金立Android版本,金立amigo为国内首个安卓5.0手机操作系统
  17. 如何实现上拉刷新下拉加载
  18. arduino uno r3单片机封装图_单片机控制的OLED简易电子表原型
  19. 软件测试真假童子,19岁年薪千万,他打王者荣耀打成了“游戏圈的TFBOYS”
  20. cots 常见问题解答

热门文章

  1. 无法识别的属性“targetFramework”
  2. 无法识别的属性“targetFramework”解决办法
  3. 获取中国标准时间(由美国官方时间折算)
  4. 热烈祝贺GFC东南亚区块链技术峰会圆满成功
  5. 2021高考成绩查询打什么电话,2021高考结束后多久出成绩 成绩查询时间和方式是什么...
  6. HMM/GMM识别之三音素训练——决策树
  7. GC6609 36V 2A国产超静音,低振动,256细分,全方位保护,step/dir接口或uart接口,AGC自动幅度调整 低成本替代trinamic TMC2208/2209
  8. android资源加载失败,解决Android WebView拦截url,视频播放加载失败的问题
  9. 商城业务-支付-支付宝沙箱代码
  10. 【智能制造】李培根院士45页PPT解读「数据.互联.智能」