2021-09-11 多态
== 和 equals 的区别
== 是比较运算符, 可以比较基本数据类型是否相等,也可以用于引用类型判断两个对象是否相等
equals 是Object类的方法,Java中所有类都可以用这个方法,不能用于比较基本数据类型,可以用于比较引用类型,一般子类都会重写equals方法来比较属性是否相同
什么是多态,多态的具体体现?
方法或对象具有多种形态,是OOP的第三大特性,建立在封装和继承基础之上
体现:
1.方法多态:
(1)重载体现多态(2)重写体现多态
2.对象多态
(1)对象的编译类型和运行类型可以不一致,编译类型在定义时就确定了,不能再改变
(2)对象的运行类型是可以变化的,可以通过getClass()来查看运行类型
(3)编译类型看 = 左边,运行类型看 = 右边
Java的动态绑定机制:
1.当调用对象的方法时,该对象的方法会和对象的内存地址(运行类型)绑定
本类 同包不同类不同包
publicokok ok ok
protectedok ok ok no
默认 okoknonoprivateoknono no
== 和 equals 的区别
== 是比较运算符, 可以比较基本数据类型是否相等,也可以用于引用类型判断两个对象是否相等
equals 是Object类的方法,Java中所有类都可以用这个方法,不能用于比较基本数据类型,可以用于比较引用类型,一般子类都会重写equals方法来比较属性是否相同
什么是多态,多态的具体体现?
方法或对象具有多种形态,是OOP的第三大特性,建立在封装和继承基础之上
体现:
1.方法多态:
(1)重载体现多态(2)重写体现多态
2.对象多态
(1)对象的编译类型和运行类型可以不一致,编译类型在定义时就确定了,不能再改变
(2)对象的运行类型是可以变化的,可以通过getClass()来查看运行类型
(3)编译类型看 = 左边,运行类型看 = 右边
Java的动态绑定机制:
1.当调用对象的方法时,该对象的方法会和对象的内存地址(运行类型)绑定

浙公网安备 33010602011771号