java多态前的一点小细节
java多态前的一点小细节
super关键字
- 只能存在于构造方法中,必须是第一行
- 使用super()代表着调用父类的构造方法,如果子类的构造方法中没有写super,java系统默认为super()
- super.属性名可以调用父类的属性,若父类没有则继续往上寻找
- super不能使用在static修饰的方法中
this关键字
1、this在非静态方法中使用
那个对象调用this,this就表示谁
2、this什么时候生成
创建对象就开始生成
3、this可以区分成员变量和局部变量
this.属性名表示成员变量
4、this在构造方法中可以调用重载方法
在构造方法中this(参数列表)就可以调用重载方法
重写与重载的区别
1、重写(override)
如过父类中的方法无法满足,在子类定义一个与父类一样的方法。
但是严格执行三同一不严格(参数列表、方法名、返回值(也可以是子类)相 同),修饰符不能比父类更加严谨。
2、重载(overload)
方法的重载:是多态的一种实现策略,方法的重载表现为.
格式:方法名相同,参数列表不同(与返回值、修饰符无关)
参数列表:参数个数相同时,参数的类型必须不同
== 与 equals的区别
1、==
基本类型:比较的时值
引用数据类型:比较的时地址
2、equals
没有重写equals时,比较的时地址
public boolean equals(Object obj) { return (this == obj); }
重写后的equals比较的是值,但是如果比较后的结果为True时,hashCoed()的值 必须相同。故,重写equals必须重写hashCode()。
this与super区别
相同点: 都不能在static修饰的位置使用 使用super来引用父类的成分 用this来引用当前类的成分
上一篇:
IDEA上Java项目控制台中文乱码