1、封装
程序设计要追求
“
高内聚,低耦合
”
。高内聚就是类的内部数据操作细节自己完成,不允许外
部干涉;低耦合:仅暴露少量的方法给外部使用
- 使用private 修饰需要封装的成员变量。 (属性私有)
- 提供一个公开的方法设置或者访问私有的属性(get/set)
封装的意义:
- 1. 提高程序的安全性,保护数据。
- 2. 隐藏代码的实现细节
- 3. 统一用户的调用接口
- 4. 提高系统的可维护性
- 5. 便于调用者调用。
良好的封装,便于修改内部代码,提高可维护性。
良好的封装,可进行数据完整性检测,保证数据的有效性。
方法重载
public
void
test
(
Strig str
){}
public
void
test
(
int
a
){}
2、继承
继承的本质是对某一批类的抽象(父类<<子类(派生类))
extends
(JAVA只有单继承没有多继承)
注
:
java
中接口和接口之间
,
有可以继承
,
并且是多继承。
子类中继承了父类中的属性和方法后
,
在子类中能不能直接使用这些属性和方法
,
是和这些属性和方法原有的修饰符(public protected default private)
相关的。
public
protect
default
private
在JAVA中所有类默认继承Object 类
super
以使用this来表示访问或调用子类中的属性或方法
使用
super
就表示访问 或调用父类中的属性和方法。
私有属性和方法无法被继承
子类构造方法会默认调用父类的无参构造器
父类没有无参构造
不管是显式还是隐式的父类的构造器
,super
语句一定要出现在子类构造器中第一行代码。所以
this
和 super不可能同时使用它们调用构造器的功能
,
因为它们都要出现在第一行代码位置。
- 1. 用super调用父类构造方法,必须是构造方法中的第一个语句。
- 2. super只能出现在子类的方法或者构造方法中。
- 3. super 和 this 不能够同时调用构造方法。(因为this也是在构造方法的第一个语句)
方法重写:重写是方法的重写,不牵涉属性
(与方法重载不同)
静态方法是类的方法,非静态方法是对象的方法
所以非静态方法:才能进行重写
重写的语法
- 1. 方法名必须相同
- 2. 参数列表必须相同
- 3. 访问控制修饰符可以被扩大,但是不能被缩小: public > protected > default > private
- 4. 抛出异常类型的范围可以被缩小,但是不能被扩大 ClassNotFoundException ---> Exception
- 5. 返回类型可以相同,也可以不同,如果不同的话,子类重写后的方法返回类型必须是父类方法返回类型的子类型
为什么要重写?
父类的功能:子类不一定需要,或者不一定满足。