JavaSE第八天20160812
- 继承中的构造方法
a) 默认情况下,子类会在自己构造方法的第一行使用super()调用父类无参的构造方法。
b) 当父类没有无参的构造方法,而子类没有调用父类有参的构造方法时,编译失败。
- 引用数据类型的类型转换:
a) 父类大,子类中。
b) 父类的引用可以直接指向子类的对象(子类可以直接赋给父类)。
c) 父类必须强制转换才能赋给子类。
d) 当两个类没有继承关系时,不能相互转换,否则编译失败。
e) 当父类的引用指向的实例,不是需要的子类类型时,运行时发生异常。
1.多态与方法的动态绑定
a) 多态:父类声明,子类创建。
b) 多态时只能调用父类中的成员。
一、多态时调用的成员变量一定是父类的成员变量。
二、多态时调用的成员方法:
- 如果子类没有重写此方法,调用的及是父类的方法。
- 如果子类重写了父类的方法,运行时方法会产生动态绑定,指针会从父类的方法动态绑定到子类的方法中,调用子类的方法。
- java.lang.Object类:是JAVA中所有类的父类。
a) toString():当输出类的对象时,或将类的对象与字符串进行连接时,JVM会自动调用类的toString();
b) ==与equals()
一、==:判断栈中的内容是否相等,基本数据类型比较的是值,引用数据类型比较的是引用。
二、equals():用于判断当前对象与指定对象是否相等(堆中的内容是否相等)。equlas()最早出现在Object类中,Object类中的equals()仍然是判断栈中的内容是否相等。如果自定义的类需要判断堆中的内容是否相等,建议重写Object类中的equals()方法。
- super关键字:在子类中引用父类的成员。