Please enable JavaScript.
Coggle requires JavaScript to display documents.
面向对象三大特征 - Coggle Diagram
面向对象三大特征
继承
子类和父类表现出"is-a"的关系,子类可以看成父类,父类不可以看成子类,教师是人,但是人不一定是教师
子类功能比父类丰富很多
优缺点
优点:代码复用;提高代码复用性;弱化java中的类型约束
缺点:父类的修改可能会出现在所有子类中
补充protected
不同包的子类中,只有在子类中创建自身子类对象,才能访问从父类那里继承过来的,protected成员
不能循环继承
子类对象的初始化
子类对象隐式/显式初始化
隐式:子类构造器中没有super关键字和this关键字,在创建子类对象时JVM会自动创建父类对象完成子类对象的初始化
显式:子类构造器中有this或者super关键字,创建对象时会调用父类方法,构造器第一行隐含了super关键字来调用父类的无参构造
依赖于父类对象的初始化
子类的属性隐藏
对象名点属性访问成员变量时,只跟引用有关,和对象无关
编译时看左边,运行时看左边
子类的方法覆盖
编译时看左边,运行时看右边
final和继承限制
final修饰类表示不可被继承
final修饰方法表示方法不可以被覆盖,但是可以被继承
final修饰局部变量有两种情况
1.方法体中用final修饰局部变量,表示变量一旦被定义赋值,便不可更改
2.形参用final修饰后,表示实参一旦传入就不可更改了
多态
核心知识
访问成员变量时,编译时看左边,运行时看左边
访问成员方法时,编译时看左边,运行时看右边,当父类引用指向子类对象的时候,只有方法被覆盖时结果才表现为子类结果
引用数据类型的类型转换
自动转换
向上转型
安全,所以自动转换
强制类型转换
向下转型
不安全,需要手动转换
instanceof关键字检验是否可行
封装
隐藏对象中的属性和实现细节,仅对外提供公共的访问方法