封装、继承、多态
一、封装(关键字:private)
属性私有、get/set方法;私有的东西无法被继承
封装的意义
1.隐藏代码的实现细节
2.提高程序的安全性保护数据
3.统一接口
4.增强系统可维护性
二、继承:对某一类的抽象,从而实现对现实世界更好的建模。
通过关键字:extends来定义一个类的子类。
子类(派生类)是父类(超类)的扩展,子类的权限只能扩大或保持不变。
Java只有单继承,没有多继承,继承是类与类之间的一种关系。
1.super关键字
super调用父类中的属性与方法(只能出现在子类)
默认调用父类的无参构造(super必须是子类构造方法中的第一条语句)
super与this不能同时调用构造方法。
2.关键字super vs this
2.1代表的对象不同
super:代表父类对象的应用;this :本身调用这个对象;
2.2构造方法不同
super:父类构造方法;this:子类的构造方法。
2.3使用前提不同
super:只能在继承条件下使用;this:无继承的情况也可以使用。
3.方法重写(又称方法覆盖):需要有继承关系,子类重写父类的方法,隐藏已继承的方法。
为什么要重写?
父类的功能子类不一定需要,不一定满足;子类通过方法重写可以把父类的状态和行为改变为自身的状态和行为。
重写的语法规则:方法名、参数列表(参数个数、参数类型)和父类的方法完全相同。有static(静态)、final(常量)、private(私有)修饰的方法不能被重写。重写时修饰符的范围可以扩大,但不能缩小。
三、多态:同一个方法可以根据发送对象的不同而采用多种不同的行为方式。
一个对象的实际类型是确认的,但可以指向的引用类型就不确定了。
例如:前提(Student extends Person)
//Student能调用的方法是自己或者继承父类的
Student s1 = new Student();
//Person 父类可以指向子类,但是不能调用子类独有的方法。
Person s2 =new Student();
注意:1.多态是方法的多态,属性没有多态性。
2.方法的调用只和左边定义的数据类型有关
3.子类重写了父类的方法,父类调用时,执行的是子类的方法。
以上内容如有错误,请不吝赐教!