继承:子类可以继承父类非私有的信息(属性和方法)public protected 默认
public 修饰就不需要get set方法
一旦Cat和Pet建立继承关系之后,Cat类就继承了Pet类的name和age,
此时在Cat类中,name,this.name,super.name表示的是同一个数据,都指向了Pet的name
Cat里面没有age,name , Cat调用父类属性 是直接指向父类的属性,只是一个引用
不能为了满足子类的需求而改父类
重写:子类可以对继承public protected 自父类的方法进行重新定义
equals():判断两个对象是否相等(两个对象的内存地址一致)
== 和 equals()的区别?
==:
表现形式:
如果数据是基本数据类型的,==比较的是两个数据的值是否相等。
如果数据是引用类型的,==比较的是两个数据的内存地址是否相等。
本质:
比较的是栈内存中的值是否相等。
equals():是Object类中定义的一个方法(源头),只用引用数据类型可以调用,基本数据类型无法调用,默认方法体是通过==进行判断的,比较两个对象的内存地址是否相等。
equals()经常会被Object的子类进行重写,比较典型的是String类中的重写,改为判断两个字符串的值是否相等来决定最终的结果。
instanceof关键字判断某个对象是否属于某个类
A instanceof B 判断A对象是否是通过B类来创建的
表达式的结果是boolean true表示A是通过B来创建的
如果A不是通过B来创建的,则表达式直接报错