Java 核心技术卷——学习笔记(四)

第五章 继承

1. super关键字的两种用法 

1)调用父类的方法:super.methodName()

2)调用父类的构造器:只能作为构造器的第一条语句出现。构造参数可以传递给本类其他构造器,也可以传递给父类(具体实现?)

复习:this关键字两个作用:1. 引用隐式函数 2. 调用该类的其他构造器

2. 多态

置换法则:任何出现父类的地方都可以用他的子类替换

3. final:将方法或者类声明为final的主要目的是确保他们不会在子类中改变语义

final类,无法扩展(无法被继承)的类

final方法 不能被子类覆盖的方法

4. 抽象类

包含抽象方法的类必须声明为抽象类,抽象类不能被实例化, 即不能创建抽象类的对象,但可以创建具体子类的对象。

除了抽象方法外,还可以包括具体数据和具体方法。抽象方法充当着占位的角色,他的具体实现在子类中。

扩展抽象类有两种方法,1. 在子类中定义部分抽象类或者不定义抽象类方法,此时子类也必须声明为抽象类。2. 在子类中定义全部的抽象方法,此时,子类就不是抽象的了。

5. 受保护访问 protected

允许子类访问的类声明为protected

复习:Java用于控制可见性的4个访问修饰符 1. 仅对本类可见 private 2. 对所有类可见 public 3. 对本包和所有子类可见 protected

4. 对本包可见 (默认不需要修饰符)

6.(?) equals方法:,一般用于比较对象,判断两个对象是否有相同的引用,内存空间的内容是否相同

复习:==:== 对比两个对象基于内存引用,习惯用语基本数据类型的比较,判断两个变量或实例是不是指向同一个内存空间 。

7.比较this和otherobject是否属于同一个类,用getClass:if(getClass()!=otherobject.getClass())return flase;

如果所有的子类都有统一的语义,就用instanceof检测 if(!(otherobject instanceof ClassNmane)) return false

8. 如果在子类中重新定义equals,就要在其中包含调用super.equals(others)

对于数组,可用Arrays.equals检测

9. hashcode方法:判断对象是否相等(具体)

10. 所有的基本类型都有一个包装器,将基本类型装换成对象,在很多情况下,可以自动拆箱或装箱

11.参数数量可变的方法:例如printf

也可以自定义可变参数方法,比如double max(double... values)

甚至main方法public static void main(String... args)

12. 枚举类:例如普遍流传enumerateSize{SMALL,MEDIUM,LARGE}

实际上,这个声明定义的是一个类,有需要的话,可以增加构造器,方法和域。

所有的枚举类型都是enum的子类,他们继承了这个类的许多方法,比如toString,其逆方法valueOf

 

阅读更多
换一批

没有更多推荐了,返回首页