内容
03面向对象编程(29-45)
Notes
- 分析输出结果 - ppt120-124 & TestTeacher\TestTeacher.java
- Object类是一切类的父类
- toString方法推荐重写,重写最好的方法是到文档里copy - TestTS\TestToString.java
- 根据hash编码可以很快的确定对象及其位置(java在这一点上有漏洞)
- 对于非空类x,x.equals(null)返回false
- x.equals(y)的默认实现与x==y一样,所以需要被重写
- A instanceof B - A是B类的对象 -TestEQ\TestEquals.java(equals的定义 & string下的equals使用)
- 对象转型实例 x2 - ppt132-136
- 父类指向子类称作向上转型,此时无法访问子类的属性和方法,反之则叫向下转型,也叫强制转换
- 要想访问子类的方法, 要加强制转换符
- 动态绑定/多态/迟绑定 - TestPolymoph\Test.java
- 方法存在code segment里面
- 动态绑定在 执行期间 根据 实际类型 进行绑定,而不是根据引用类型调用方法
- 多态存在的必要条件
– 要有继承
– 要有重写
– 父类引用指向子类对象 - abstract -
– 含有抽象方法的类一定是抽象类
– 抽象方法只有方法的定义,没有方法的实现(不需要{}),并且在子类中必须被重写,子类若不需要该抽象方法,可以再声明一遍抽象方法,此时子类也必须为抽象类 - ppt140/TestPolymoph\Test.java
– 抽象类是残缺的类,不能被实例化,无法new出对象 - final的变量值无法被改变,方法不能被重写,类不能被继承 - TestFinal\TestFinal.java
- 接口用于实现多继承,是特殊的抽象类,接口的属性都是public static final(无论定义或不定义),方法都是抽象方法,方法不用写abstract关键字 - ppt代码146-148 + 分析内存
- 一个类可以实现多个无关的接口,用逗号隔开接口,实例:TestInterface\Valuable.java
- 接口之间可以相互继承 - 接口实例练习PPT149
代码
- ppt120-124 & TestTeacher\TestTeacher.java - 分析输出结果
- TestTS\TestToString.java - toString方法测试
- TestEQ\TestEquals.java - equals方法测试
- ppt132-136 - 对象转型实例 x2
- TestPolymoph\Test.java - 动态绑定/多态/迟绑定测试
- ppt140 & TestPolymoph\Test.java - abstract关键字测试
- TestFinal\TestFinal.java - final关键字测试
- ppt代码146-148 + 分析内存 - 接口测试
- TestInterface\Valuable.java - 接口测试
- PPT149 - 接口实例练习