一、类的封装
所谓封装,指以下几个方面:
(1) 在类的定义中设置对对象中的成员变量和方法进行访问的权限。
(2) 提供至少一个统一供其他类引用的方法。
(3) 其他对象不能直接修改本对象所拥有的属性和方法。
1、对象的可见性和作用域
2、public
被public定义的类中成员变量或方法可以供其他类进行访问。
3、private
被private定义的类中成员变量或方法只可供本类访问。
4、protected
被protected定义的类中成员变量或方法可供类本身、子类或包中的方法访问。
5、friendly
被friendly定义的类中成员变量或方法可供类本身和包中的方法访问。
二、多态机制
Java中提供两种多态机制:
重载和覆盖
1、方法的重载
所谓方法重载,就是在类中创建了多个方法,它们具有相同的名称,但有不同参数列表和返回值。
2、构造方法的重载
3、方法的覆盖
三、类的继承
1、继承的概念
2、继承的实现
定义继承的形式为:
[访问权限] class 类名 extends 父类 {
…;
}
(1) 子类对父类成员变量的继承
继承父类非私有、非终止的成员变量。
(2) 子类与父类同名的成员变量的使用
默认调用子类的成员变量,super.成员变量调用父类的。
(3) 方法的覆盖
默认调用子类的方法,super.方法调用父类的。
(4) this与super的区别
如果类的成员变量名与当前方法中的形参名或与当前方法中的局部变量名相同时,就要采用this关键字来引用类的成员变量。
(5) 构造方法的继承
1) 子类可以无条件的继承父类不含参数的构造方法。
2) 如果子类没有构造方法,则它继承父类无参数的构造方法作为自己的构造方法;如果子类有构造方法,那么在创建子类的对象时,则想执行继承下来的父类的构造方法,然后再执行自己的构造方法。
3) 对于父类中包含有参数的构造方法,子类可以通过在自己的构造方法中使用super关键字来引用,而且必须是子类构造方法中的第一条语句。
6) 类的转换
1) 子类对象可以转换为父类对象。
2) 处于相同继承层次的类对象不能进行转换。
(7) 终止覆盖
父类方法用final修饰符修饰,不允许子类中也定义同名方法。