2019-2020-3 《Java 程序设计》第四周知识总结

第五章:继承
1、定义继承关系的语法结构:
[修饰符] class 子类名 extends 父类名 {
类体定义 }
父类中应定义共有的属性和方法,子类除了可以继承父类中的属性和方法外,可以根据自己的具体特点定义自己特有的属性或方法。
【说明】:java类只支持单重继承,即只有一个父类的继承关系。
2、属性的继承与隐藏
属性的继承:
当父子类在同一个包中时,子类可以无条件继承父类的所有非私有属性。
当父子类不在同一包中时(父类被public 修饰),父类的被public 和protected 修饰的属性可以被子类继承。
属性的隐藏:
子类中出现和父类中同名属性的现象称为属性的隐藏。
当子类执行继承自父类的操作时处理的是继承自父类的属性,当子类执行自己定义的方法时,处理的是自己重新定义的同名属性。
3、方法的继承与覆盖

方法的继承:
当父子类定义在同一个包中时,父类的所有非私有方法可以被子类继承。
当父子类不在同一包中时(父类被public修饰),父类的被public和protected修饰的方法可以被子类继承。
方法的覆盖:
子类中定义了和父类具有相同方法头方法的现象称作方法的覆盖。
方法覆盖中,可以通过在方法名前使用不同的对象名或类名来加以区分调用的是父子类中的方法。
子类在重新定义父类已有的方法时,子类方法的访问控制修饰符控制范围至少应该和父类相同才行。
4、继承关系中的构造方法及super关键字
继承关系中,构造方法的使用遵循如下原则:
(1) 创建子类对象时,先调用父类构造方法在调用子类构造方法。
(2) 默认情况下调用父类的无参构造方法。
(3) 对于父类带参的构造方法,子类可以通过在自己的构造方法中使用super关键字来调用,但这条语句必须是子类构造方法中的第一条可执行语句。
Java中,关键字super关键字的用法有以下三种:
(1) 在子类构造方法中,可以通过super关键字调用父类的构造方法,要求该语句是子类构造方法的第一条可执行语句。
(2) 可以在子类通过super.父类属性调用父类属性,如果次属性不涉及属性的隐藏时,super.可以省略。
(3) 可以在子类中通过super.父类方法,调用父类中定义的方法,如果被调用的方法不涉及到覆盖时,super.可以省略。
【注意】this和super不能再static修饰的方法内使用。
5、抽象方法和抽象类
(1)抽象类:用abstract修饰的类叫做抽象类,抽象类不能实例化。
(2)抽象方法:用abstract修饰的方法叫做抽象方法,抽象方法只有方法头没有方法体。
(3)抽象方法必须定义在抽象类中。
6、多态性
通过覆盖父类的方法来实现,在运行时根据传递的对象引用,来调用相应的方法。若将子类对象的引用传递给声明为父类的参数,若子类有这个方法,就调用子类的方法,若子类没有这个方法,就调用父类的方法。
Instanceof:判断一个对象是否是一个类的实例,
对象名 instanceof 类名
7、final关键字
(1) 被fina修饰的类不能被继承,即不能有子类。
(2) 被final修饰的方法不允许子类隐藏可以继承的final方法。
(3) 被final修饰的常量在运行期间不允许再发生变化。

2019-2020-3《Java 程序设计》第四周学习总结

1.通过第二周的学习,利用教材和老师在蓝墨云上的一些教学视频以及通过老师和同学的博客以及一些课外资料,充分学习了第四章的内容,学习的内容有:子类与父类、子类的继承性、子类与对象、成员变量的隐藏和方法重写、super关键字、final关键字、对象的上转型对象、继承与多态、abstract类和abstract方法、面向抽象编程、开闭原则。通过这周的学习,对java有了更加深入的理解,也学会了许多实用的东西。
2.通过手打第四章代码,对语法有一定的帮助,并在调试完代码后上传至码云仓库,并提交脚本。
例子1:
例子2:
例子3:
例子4:
例子5:
例子6:
例子7:
例子8:
例子9:
例子10:
例子11:
例子12:
例子13:
面向抽象编程例子:
脚本截图:

注:我的码云链接:https://gitee.com/zzm-zcc/zhang_zhi_min

2019-2020-3 《Java 程序设计》第四周练习题生疏题、错题总结

1、下列说法正确的是(ACD)

A .使用extends关键字定义一个类的子类。

B .Java与C++类似,支持多继承,即子类可以有一个或多个父类。

C .Object是所有类的祖先类。

D .如果子类继承父类的成员变量作为自己的一个成员变量,则该成员变量可以被子类中自己定义的任何实例方法操作。

2、下列说法错误的是(AD)

A .继承的成员变量或方法的访问权限可以由子类重新定义。

B .若子类和父类不在同一包,子类只继承父类中的protected和public访问权限的方法作为子类的方法。

C .继承关系的UML类图用一个实线连接两个类,起始端是子类,重点端是父类,终点端使用空心三角形表示实线的结束。

D .如果在类本身创建一个对象,则该对象不可以通过“.”运算符访问继承的protected变量。

3、如果子类和父类不在同一包中,子类不继承父类的友好成员变量。(A)

A .true

B .false

4、instanceof主要用来判断一个类是否实现了某个接口,或者判断一个实例对象是否属于一个类。(A)

A .true

B .false

5、下列关于Override的说法,正确的是(ABC)

A .子类所声明的成员变量的名字和从父类继承来的成员变量名字相同但类型不同时,子类会隐藏所继承的成员变量。

B .除了继承的方法之外,子类新定义的方法可以操作子类继承的成员变量。

C .子类重写的方法,方法名字、参数个数、参数类型和父类的方法完全相同。

D .重写方法可以操作被子类隐藏的成员变量和方法。

# 2019-2020-3 《Java 程序设计》第四周总结的更多相关文章

  1. Java程序设计第四周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 答:①String类是final类,不能定义String的子类. ② instanceof ...

  2. 201871010106-丁宣元 《面向对象程序设计(java)》第四周学习总结

    201871010106-丁宣元 <面向对象程序设计(java)>第四周学习总结 正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-da ...

  3. 20145213《Java程序设计》第四周学习总结

    20145213<Java程序设计>第四周学习总结 教材学习内容总结 本周任务是学习面向对象的继承.接口以及之后的如何活用多态.(还真是路漫漫其修远兮啊!)教材也是延续上周艰深晦涩的语言风 ...

  4. 20145330《Java程序设计》第四周学习总结

    20145330<Java程序设计>第四周学习总结 一周两章新知识的自学与理解真的是很考验和锻炼我们,也对前面几章我们的学习进行了检测,遇到忘记和不懂的知识就再复习前面的,如此巩固也让我对 ...

  5. 20145337《Java程序设计》第四周学习总结

    20145337<Java程序设计>第四周学习总结 教材学习内容总结 继承与多态 继承 继承,避免多个类间重复定义共同行为 符合DRY(Don't Repeat Yourself)原则,多 ...

  6. 20145218 《Java程序设计》第四周学习总结

    20145218 <Java程序设计>第四周学习总结 教材学习内容总结 继承 继承共同行为 继承基本上就是避免多个类间重复定义共同行为. 继承的三个好处:减少代码冗余:维护变得简单:扩展变 ...

  7. 《Java程序设计》第四周学习总结

    20145224-陈颢文 <Java程序设计>第四周学习总结 教材学习内容总结 第六章 继承与多态 ·继承就是面向对象中,子类继承父类,避免重复的行为定义.重复再程序设计上是非常不好的信号 ...

  8. 20155304 2016-2017-2 《Java程序设计》第四周学习总结

    20155304 2016-2017-2 <Java程序设计>第四周学习总结 教材学习内容总结 第六章 继承: 概念: 面向对象中,为避免多个类间重复定义共同行为.(简单说就是将相同的程序 ...

  9. 201521123061 《Java程序设计》第十四周学习总结

    201521123061 <Java程序设计>第十四周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据 ...

  10. 201521123038 《Java程序设计》 第四周学习总结

    201521123038 <Java程序设计> 第四周学习总结 1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 1.通过 ins ...

随机推荐

  1. Groovy与Java集成常见的坑

    摘要: groovy特性 Groovy是一门基于JVM的动态语言,同时也是一门面向对象的语言,语法上和Java非常相似.它结合了Python.Ruby和Smalltalk的许多强大的特性,Groovy ...

  2. Python 面向对象(三)

    继承的实现原理 Python支持多继承 多继承的时候  属性查找的顺序 研究经典类和新式类在属性查找的不同 主要是形成菱形关系才有深度跟广度 广度优先 Python的继承原理  Python3的内置方 ...

  3. ubuntu下安装owncloud提示没有zip模块时

    wget http://pecl.php.net/get/zip-1.13.5.tgztar -zvxf zip-1.13.5.tgzcd zip-1.13.5phpize ./configure m ...

  4. MYSQL SQL语句技巧初探(一)

    MYSQL SQL语句技巧初探(一) 本文是我最近了解到的sql某些方法()组合实现一些功能的总结以后还会更新: rand与rand(n)实现提取随机行及order by原理的探讨. Bit_and, ...

  5. 02-模拟Junit4功能

    package com.day2; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; im ...

  6. Vue的路由实现:hash模式 和 history模式

    hash模式:在浏览器中符号“#”,#以及#后面的字符称之为hash,用 window.location.hash 读取.特点:hash虽然在URL中,但不被包括在HTTP请求中:用来指导浏览器动作, ...

  7. leetcode200

    深度优先搜索,每次遇到1,则岛的数量+1,从这个1开始找到所有相连的1,将其改为0. public class Solution { private void dfsSearch(char[,] gr ...

  8. ---mingw Linux交叉编译给Window的工具

    https://arrayfire.com/cross-compile-to-windows-from-linux/

  9. Spring 4 官方文档学习 Web MVC 框架

    1.介绍Spring Web MVC 框架 Spring Web MVC 框架是围绕DispatcherServlet设计的,所谓DispatcherServlet就是将请求分发到handler,需要 ...

  10. faster-RCNN框架之rpn 较小目标检测,如果只使用rpn,并减少多个候选框

    通常faster-rcnn目标检测有两个步骤,一个是侯选框生成,一个是侯选框微调+目标区分,但是对于单目标识别, 我经常喜欢只使用rpn网络,效果还不错,不过仅仅的rpn使用参考的参数通常会造成一个目 ...