方法重写/覆写(Override)
特点:
1一般发生在父子类间,子类重写父类中的方法,方法的返回值类型,方法名,形参列表都要与父类一样,
子类权限修饰符>=父类的权限修饰符
2.一旦重写了父类的方法,子类创建对象后,调用子类重写后的方法;
[email protected]:重写的注解,标注当前方法为重写父类的方法,必须满足重写规则;
方法重载和重写的区别:
1.重载发生在同一个类中,主要提供同名不同参的方法;重写发生在父子类之间,主要为了结合多态使用,提高程序的扩展性和可维护性
2.重载,方法名相同,参数列表不同,跟返回值类型和权限修饰符没有关系;重写,方法名、参数列表、返回值类型要与父类相同,子类权限修饰符>=父类权限修饰符。
super关键字(类比this关键字)
super是对直接父类的引用,可以使用super关键字调用父类的属性(super.属性名),方法(super.方法名),构造方法(super(属性1,属性2....)必须放在构造函数的第一行).
Object类
Object 是所有类的超类、基类、根类,处于java.lang包下,没有使用extends关键字的类,默认extends Object;
Object类中的常用方法:
1.toString();将传入的对象以字符串的形式输出
2.equals();比较的2个引用数据类型,比较的是引用(地址),需要比较内容时候,一般都需要重写equals方法;
3.wait()/notify():多线程有关
4.getClass():返回此 Object
的运行时类。
5.hashCode():返回该对象的哈希码值
6.finalize():当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
在继承中程序的执行顺序:
父类静态代码块>子类静态代码块>父类代码块>父类构造方法>子类代码块>子类构造方法
new子类的时候,会先调用父类的构造方法,首先创建父类对象,然后再创建子类实例。
==和equals的区别
1.==比较基本数据类型的时候,比较的是值
2.比较引用数据类型的时候,==和equals的效果一样,比较的是当前对象的引用(地址)
3.想要比较对象的内容,需要重写equals方法