1、方法重写
1.在子类与父类之间
2.方法名相同
3.参数个数和类型相同
4.返回值类型相同或是其子类
5.访问权限不能严于父类
方法重写VS方法重载:
比较项 | 位置 | 方法名 | 参数表 | 返回值 | 访问修饰符 |
---|---|---|---|---|---|
方法重写 | 子类 | 相同 | 相同 | 相同或是其子类 | 不能比父类更严格 |
方法重载 | 同类 | 相同 | 不相同 | 无关 | 无关 |
2、Object
object类是超类(基类)
java中所有的类都直接或间接继承Object
-
Object类的
equals()
方法
-
比较两个对象是否是同一个对象,是则返回true
-
操作符==
-
简单数据类型,直接比较值。
-
引用类型,比较两者是否为同一对象。
-
-
-
Object类的equals()方法与==没区别。
-
当有特殊需求,如认为属性相同即为同一对象时,需要重写equals()。
-
Java.lang.String重写了equals()方法,把equals()方法的判断变为了判断其值
3、类型转换
向上转型:子类转父类 (自动转换)
向下转型:父类转子类(强制转换)
instanceof:判断是否可以转换为指定类型
4、抽象
abstract抽象类:不能被实例化, 等待被继承
public abstract class Pet
abstract抽象方法:
1.抽象方法使用abstract修饰pub1ic abstract void
2.抽象方法没有方法体
3.抽象方法必须被重写
4.抽象方法必须在抽象类中,而抽象类中可以没有抽象方法
5、多态
事物的多种形态(同一种事物,条件不同,结果不同)
抽象方法abstract:
eg:public abstract void print();
没有实体 必须在抽象类中 必须在子类中被实现,除非子类是抽象类 类型转换 父类转子类 大转小 向下转型(强制类型转换) 子类转父类 小转大 向上转型(隐式类型转换) 向上转型:父类的引用指向子类对象,自动进行类型转换。
<父类型> <引用变量名> = new <子类型>();
此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,不是父类的方法。
此时通过父类引用变量无法调用子类特有的方法。
向下转型:将一个指向子类对象的父类引用赋给一个子类的引用
即:父类类型转换为子类类型。需强制类型转换
<子类型> <引用变量名> = (<子类型> )<父类型的引用变量>;
在向下转型的过程中,如果没有转换为真实子类类型,会出现类型转换异常
instanceof:使用instanceof时,对象的类型必须和instanceof后面的参数所指定的类在继承上有上下级关系。