20175308 2018-2019-2 《Java 程序设计》第四周学习总结
教材学习内容总结
继承是一种由已有的类创建新类的机制. Java 不支持多重继承, 子类只能有一个父类.
使用 extends 来定义一个类的子类, 如:
- class People{
- .....
- }
- class ChinesePeople extends People{
- ....
- }
ChinesePeople 类即被定义为 People 的子类.
如果子类和父类都在一个包中, 那么子类自然地继承了父类中不是 private 的成员变量 / 方法作为自己的成员变量 / 方法, 且访问权限不变
如果子类和父类不在一个包中, 子类只继承父类中的 protected 和 public 访问权限的变量和方法.
[输入图片说明]( ".jpeg")
子类对象可以调用继承的方法操作未被子类继承却分配了内存空间的变量.
instanceof 运算符: 如果左侧的对象由右边的类生成, 运算结果为 true 否则为 false
子类声明的成员变量的名字和从父类继承来的成员变量的名字相同, 此时, 子类会隐藏所继承的成员变量.
重写可以操作: 1. 继承的成员变量 2. 继承的方法 3. 子类新声明的成员变量 4. 新定义的其他方法
重写不可以操作: 被子类隐藏的成员变量和方法(如果想操作要加关键字 super)
重写, 重载的区分:
假设父类方法为:
[类型 1] 方法(参数 1)
子类:(1 代表一致, 2 代表修改)
[类型 1] 方法(参数 1): 重写
[类型 2] 方法(参数 1): 语法错误
[类型 1] 方法(参数 2): 重载
即重写一定要一模一样
当在父类中定义多个构造方法时, 应当包括一个不带参数的构造方法, 防止子类省略 super 时出现错误
final 类不能被继承, 没有子类. 例如 String 类就是不能扩展的 final 类
当把子类创建的对象的引用放到一个父类的对象中时, 就的到了该对象的上转型对象, 那么这个上转型对象在调用这个方法时就可能具有多种形态不懂的子类
abstract 类为抽象类, 它只允许声明, 但不允许实现, 也不许用 static 修饰
教材学习中的问题和解决过程
问题 1:Integer 类和 int 类的区别
问题 1 解答: Integer 是 int 的包装类. 一个非常简单的区分就是, Integer 的初值为 null(空), 而 int 类的初值为 0
问题 2:P125, 思考如果 UniverStudent 子类的构造方法中省略 super, 程序的运行结果是怎样的?
问题 2 解决方案: 通过查阅相关资料, 可知当父类不含无参构造方法时, 子类构造方法必须显示父类带参构造方法, 因为子类实例化时先要将父类实例化
package com.zero; public class Son extends Father{ private int age; // 子类构造方法 -- 必须先显式调用父类构造方法 public Son(int i) { super(i);// 必须先调用父类的构造方法, 然后才能写子类构造方法的其他逻辑 this.age = i - 20; System.out.println("实例化子类 age =" + age); } //main 方法 public static void main (String [] args) { // 实例化子类 Son Son so = new Son(40); Son so1 = new Son(50); } }
运行结果为: 实例化父类 ag = 40
实例化子类 age = 20
实例化父类 ag = 50
实例化子类 age = 30
代码托管
上周考试错题总结
19, 下列代码中标注的 (A,B,C,D) 中, 哪一个是错误的?(B)
abstract class Takecare { protected void speakHello() { } //A public abstract static void cry(); //B static int f() { return 0 ; } //C abstract float g(); //D } A .A B .B C .C D .D
static 和 abstract 不能一起修饰, 该题属于记忆不清
感悟
java 的学习越来越接近高潮部分, 不再像大一时学 C 语言那般单纯写写小程序那般打打闹闹, Java 作为面向对象语言的特点一点一点更加清晰的体现. 我们更多的学习的是 java 与众不同的特点. 越来越具有挑战性, 也越来越有趣味性.
学习进度条
代码行数(新增 / 累积) | 博客量(新增 / 累积) | 学习时间(新增 / 累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000 行 | 30 篇 | 400 小时 | |
第一周 | 41/41 | 2/2 | 20/20 | |
第二周 | 391/432 | 1/3 | 18/38 | |
第三周 | 841/1273 | 2/5 | 22/60 | |
第四周 | 385/1712 | 2/7 | 30/90 |
参考资料
来源: http://www.bubuko.com/infodetail-2996583.html