java第五章:面向对象(oop)

方法重写/覆写(Override)

特点:

1一般发生在父子类间,子类重写父类中的方法,方法的返回值类型,方法名,形参列表都要与父类一样,

子类权限修饰符>=父类的权限修饰符

2.一旦重写了父类的方法,子类创建对象后,调用子类重写后的方法;

3.@Override:重写的注解,标注当前方法为重写父类的方法,必须满足重写规则;

方法重载和重写的区别:

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方法

原文地址:https://www.cnblogs.com/SXTzhaopengda/p/6953924.html