2021-09-11 多态

 

== 和 equals 的区别

== 是比较运算符, 可以比较基本数据类型是否相等,也可以用于引用类型判断两个对象是否相等

equals 是Object类的方法,Java中所有类都可以用这个方法,不能用于比较基本数据类型,可以用于比较引用类型,一般子类都会重写equals方法来比较属性是否相同

 

什么是多态,多态的具体体现?

方法或对象具有多种形态,是OOP的第三大特性,建立在封装和继承基础之上

体现:

1.方法多态:

(1)重载体现多态(2)重写体现多态

2.对象多态

(1)对象的编译类型和运行类型可以不一致,编译类型在定义时就确定了,不能再改变

(2)对象的运行类型是可以变化的,可以通过getClass()来查看运行类型

(3)编译类型看 = 左边,运行类型看 = 右边

 

Java的动态绑定机制:

1.当调用对象的方法时,该对象的方法会和对象的内存地址(运行类型)绑定

2.当调用对象的属性时,没有动态绑定机制。哪里声明,哪里使用

本类 同包不同类不同包

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.当调用对象的方法时,该对象的方法会和对象的内存地址(运行类型)绑定

2.当调用对象的属性时,没有动态绑定机制。哪里声明,哪里使用

posted @ 2021-09-11 18:56  搬砖丶  阅读(44)  评论(0)    收藏  举报