封装
该露的露,该藏得藏
我们的程序设计要求高内聚,低耦合高内聚就是类的内部数据操作细节自己完成,不允许外部干涉,低耦合就是仅暴露少量的方法给外部使用
封装(数据的隐藏)
通常,应禁止访问一个对象中数据的实际表示,而应通过操作接口来访问,这成为信息隐藏
属性私有,get/set
封装的意义:
- 提高程序的安全性保护数据
- 隐藏代码的细节实现
- 统一接口
- 增加可维护性
继承
继承的本质是对某一类的抽象,从而实现对现实世界更好的建模
继承的好处:
1.提高了代码的复用性,父类定义的内容,子类可以直接拿过来用就可以了,不用代码上反复重复定义了
2.便于代码的扩展
3.为了以后多态的使用。是多态的前提。
extands的意思是”扩展“,子类是父类的扩展
java中类只有单继承,没有多继承
父类private修饰的内容,子类实际上也继承,只是因为封装的特性阻碍了直接调用,但是提供了间接调用的方式,可以间接调用
同一个类 | 同一个包 | 子类 | 所有类 | |
---|---|---|---|---|
private | * | |||
default | * | * | ||
protected | * | * | * | |
public | * | * | * | * |
重写:
发生在子类和父类中,当子类对父类提供的方法不满意的时候,要对父类的方法进行重写。
子类的方法名字和父类必须一致,参数列表(个数,类型,顺序)也要和父类一致。
【5】重载和重写的区别:
重载:在同一个类中,当方法名相同,形参列表不同的时候 多个方法构成了重载
重写:在不同的类中,子类对父类提供的方法不满意的时候,要对父类的方法进行重写。
多态
什么是多态:
多态就是多种状态:同一个行为,不同的子类表现出来不同的形态。
多态指的就是同一个方法调用,然后由于对象不同会产生不同的行为。
多态的好处:
为了提高代码的扩展性,符合面向对象的设计原则:开闭原则。
开闭原则:指的就是扩展是 开放的,修改是关闭的。
注意:
1.多态可以提高扩展性,但是扩展性没有达到最好,以后我们会学习 反射
2.多态是方法的重写,没有属性的重写
多态的要素:
一,继承: Cat extends Animal ,Pig extends Animal, Dog extends Animal
二,重写:子类对父类的方法shout()重写
三, 父类引用指向子类对象:(只要子类没有重写父类,就调用父类的,如果子类重写了父类就调用子类的)
Pig p = new Pig();
Animal an = p;
public void play(Animal an){//Animal an = an = new Pig();
an.shout();
}
上面的代码,也是多态的一种非常常见的应用场合:父类当方法的形参,然后传入的是具体的子类的对象,
然后调用同一个方法,根据传入的子类的不同展现出来的效果也不同,构成了多态。
super注意点:
- super调用父类的构造方法,必须在构造方法的第一个
- super必须只能出现在子类的方法或者构造器中
- super和this不能同时调用构造器
this:
代表对象不同:this本身调用者这个对象;super代表父类对象的应用
前提:this没有继承也能使用;super只能在继承条件才可以使用
构造方法:this();本类的构造
super();父类的构造