Java面向对象 08 - 11
Java面向对象08 - 封装详解
- 程序设计追求,
高内聚,低耦合
, 高内聚就是类的内部数据操作细节自己完成,低耦合是仅暴露少量的方法给外部使用 - 封装 (数据的隐藏)
- 通常应该进制直接访问一个对象中的数据,应该通过操作接口来访问,这称为信息隐藏
- 属性私有,get/set
封装的意义
- 提高程序安全性
- 隐藏代码的实现细节
- 提高可维护性
- 统一借口
通常在set的时候我们可以写一些条件,来规范外部的输入
1 | package Demo04; |
1 | package Demo04; |
1 | 赵晓艺 |
Java面向对象09 - 什么是继承
- 所有类都继承了Object类(直接或者间接)
- super
- 方法重写
1 | package Demo05; |
1 | package Demo05; |
1 | package Demo05; |
1 | package Demo05; |
1 | 说了一句话 |
Java面向对象10 - Super详解
super注意点
- super调用父类的构造方法,必须在构造方法的第一个
- super必须只能出现在子类的方法或者构造方法中
- super 和 this不能同时调用构造方法
this VS super
- 代表的对象不同
- this 本身调用者这个对象
- super 代表父类对象的应用
- 前提
- this 没有继承也可以使用
- super 只能在继承条件才可以使用
- 构造方法
- this() 本类的构造
- super() 父类的构造
注意:在子类的构造函数中,如果没有明确的写,则会自动调用父类的构造方法,此时,如果父类写了一个有参构造,没有写无参构造,子类构造函数中又没有写有参调用super(), 那么会报错。因为父类不会再自动生成无参构造函数了,但子类因为没有明确写出则会自动调用父类的无参构造。
1 | package Demo05; |
1 | package Demo05; |
1 | package Demo05; |
1 | Student |
Java面向对象11 - 方法重写
- 重写都是方法,与属性无关
- 重写与静态方法无关,与非静态方法有关
- 需要有继承关系,子类重写父类的方法
- 方法名必须相同
- 参数列表必须相同
- 修饰符,范围可以扩大,但不能缩小,父类是private,重写可以是public,但是反之不行
- public>protected>default>private
1 | package Demo06; |
1 | package Demo06; |
1 | package Demo06; |
1 | A test |