20175306 2018-2019-2 《Java程序设计》第4周学习总结
教材学习内容总结
第五章:子类与继承
5.1子类与父类:关键字extends
5.2子类的继承性:如果子类与父类在一个包中,除了private其他都可以继承;如果不在一个包中,则private和友好都不能继承。
protected的进一步说明,简单总结为:只要两个类在一个包中,不管继承几代,object对象就能访问继承的protected变量和方法。
5.3子类与对象:子类可能有时候不能继承父类的对象,但是可以通过调用父类中的方法来操作这部分未继承的对象。(instanceof运算符的结果是true或false)
5.4成员变量的隐藏和方法重写:注:子类对象仍然可以调用从父类继承的方法操作被子类隐藏的成员变量,或者说子类集成的方法所操作的成员变量一定是被子类继承或隐藏的成员变量
方法重写的类型和父类的方法类型一致或者是父类方法的子类型,且方法的名字、参数的个数、参数的类型和父类的方法完全相同。
注:重写父类的方法时,不允许降低方法的访问权限,但可以提高访问权限
5.5super关键字:用super操作被隐藏的成员变量和方法
5.6final关键字:如果用final修饰父类中的一个方法,那么这个方法不允许子类重写;如果成员变量或局部变量被修饰为final,那它就是常量。
5.7对象的上转型对象:
5.8继承与多态:多态性就是指父类的某个方法被其子类重写时,可以各自产生自己的功能行为。
5.9abstract类和abstract方法:abstract类注重标准而不是细节(注意事项见课本p129-p130)
5.10面向抽象编程
5.11开-闭原则
教材学习中的问题和解决过程
问题一:用老师的代码编译不出来
解决过程:在IDEA中重新创建一个项目,不能够直接打开,代码也需要复制
代码调试中的问题和解决过程
问题一:在IDEA中编译程序时,出现非法字符如 ‘\ufeff’等
解决过程:首先打开File->settings
->Build,Execution,Deploymentt ->Java Compiler ->在Additional command line parameters(附加参数中)中输入参数-encoding UTF8
参考了[Link]https://blog.csdn.net/isea533/article/details/52704160
代码托管
码云链接:
https://gitee.com/wjs123456/wjs20175306.git
本周代码详情:
本周错题总结:
1、下列说法正确的是(ACD)
A .使用extends关键字定义一个类的子类。
B .Java与C++类似,支持多继承,即子类可以有一个或多个父类。
C .Object是所有类的祖先类。
D .如果子类继承父类的成员变量作为自己的一个成员变量,则该成员变量可以被子类中自己定义的任何实例方法操作。
2、下列说法错误的是(AD)
A .继承的成员变量或方法的访问权限可以由子类重新定义。
B .若子类和父类不在同一包,子类只继承父类中的protected和public访问权限的方法作为子类的方法。
C .继承关系的UML类图用一个实线连接两个类,起始端是子类,重点端是父类,终点端使用空心三角形表示实线的结束。
D .如果在类本身创建一个对象,则该对象不可以通过“.”运算符访问继承的protected变量。
3、下列关于Override的说法,正确的是(ABC)
A .子类所声明的成员变量的名字和从父类继承来的成员变量名字相同但类型不同时,子类会隐藏所继承的成员变量。
B .除了继承的方法之外,子类新定义的方法可以操作子类继承的成员变量。
C .子类重写的方法,方法名字、参数个数、参数类型和父类的方法完全相同。
D .重写方法可以操作被子类隐藏的成员变量和方法。
本周学习心得:
通过本周的学习让我懂得要及时的复习前面的知识,因为在本周编写程序的时候,很多就忘了以前的一些内容,又回去翻看,浪费了很多时间。要注意及时复习!!!