一、方法重写:
- 方法名相同,参数列表相同。
- 子类重写父类方法。
- 访问修饰符不能严于父类。
- 返回值类型相同或是其子类。
object类:
是所有类的直接或者间接父类,equals(),toString().
equals()类类型的比较, “==”比较的是内存地址,equals比较的也是内存地址。
//Object类中源码的写法
public boolean equals(Object obj) {
return (this == obj);
}
注意:String类的equals()方法和toString()方法JDK都已经重写过!
二、多态
产生的条件:
继承 、方法重写 、向上转型
多态的实现方式:
1.父类类型作为方法的返回值
2.父类类型作为方法的形参
向上转型:
父类的引用指向子类的对象
父类的引用名只能调用子类重写父类的方法,不能调用到子类特有的方法!
向下转型:
子类的引用指向真实的对象(强制类型转换)
instanceof:判断某一种对象是否属于某一种类型。
补充:就是判断父类引用名所指向的真实子类类型,子类的引用名可以调用到子类中所有的方法
多态的优势:降低代码耦合性,方便代码扩展,可维护性高 !