0301-0302 方法重写
0303 - 0304 课堂练习
0305 - 0308 多态
对象和参数的不同调用统一名称的不同方法体现了多态。
父类的引用是子类的对象。
编译类型确定,运行类型可以改变。
0309 多态注意事项和细节讨论 - 向上转型
多态建立在继承上
父类私有的方法不能访问。
查找方法时从运行类型开始找。
0310 向下转型
0311 属性重写问题
instance of 看对象的运行类型是否为某类型或者某类型的子类型
0312 - 0313 多态的课堂练习题
Java 中的数据类型分为基本数据类型和复杂数据类型:
int 是前者而integer 是后者(也就是一个类);因此在类进行初始化时int类的变量初始为0.而Integer的变量则初始化为null.
1.int是基本的数据类型;
2.Integer是int的封装类;
3.int和Integer都可以表示某一个数值;
4.int和Integer不能够互用,因为他们两种不同的数据类型;
S和b指向同一个空间
访问属性看编译类型
方法看运行类型
0314 动态绑定机制
40,30 由子类开始查找
注销子类的sum方法,输出变成了20 + 10 = 30 30;
注销a.sum1(),输出变成了30,20;
属性没有动态绑定机制,方法和对应的运行类型绑定
0315 - 0316 多态数组
0317 多态参数
0318 运算符
0319 JDK源码
ctrl + B查看源码类型
0320 子类重写equals
1. 对象是否为同一个;
2. 值是否相等
0321 - 0323 课堂练习
Exercise 02:
1. false:==可用于基本数据量类型和引用类型的判断,基本数据类型判断值是否相等,引用数据类型判断是不是同一个对象,此语句是用于引用数据类型的,不是同一对象,故不相等。
2. true:p1.name是字符串,字符串已经重写了.eaqul方法,判断内容是否相同,内容是相同的。
3. false:p1 来自自定义的Person类,直接继承Obeject,默认判断两个对象是否相等。
4. true:字符串类重写了.equals方法,内容相等。
5. false:==判断是否为同一个对象。
我的答案:
1.F 2.F 3.T 4.F 5. T
正确答案:
1.F 2.F 3.T 4.F 5. T 6.F
错误原因:把基本类型初始化当作了引用类型,A的assc码是65