封装 继承 多态 接口
【封装】:
将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问;
封装的好处:
1、只能通过规定方法访问数据
2、隐藏类的实现细节
3、方便加入控制语句
4、方便修改实现
方法重载: 指同一个类中多个方法,
方法名相同,参数列表不同 (与返回值,访问修饰符无关)
构造函数重载: 形参列表不同
【继承】extend
只能继承一个直接父类
protected 可以被子类继承的属性或方法 ;
super 代表父类对象,访问父类里的属性或方法
当创建一个子类对象时,这个对象的初始化顺序:
父类属性 父类构造方法 子类属性 子类构造方法
有些父类成员不能继承:
子类不能访问父类private成员(属性和方法);
子类与父类不在同一包,使用默认访问权限的成员(即没有写访问修饰符,默认为default);
构造方法;
【访问修饰符】
private: 本类
默认(default):本类 同包 没有访问修饰符的就是默认;
protected: 本类 同包 子类
public:本类 同包 子类 其他 (即全局范围内都可以访问)
方法重写的原则
在继承关系的子类中
重写的方法名、参数、返回值类型必须与父类相同
私有方法不能继承因而也无法重写
@Override//在子类中想要重写的方法上面加上这个,如果这个方法能够重写,则不报错,否则报错;
重载(overload)主要发生在同一个类的多个同名方法之中,而重写(override)发生在子类和父类的同名方法之间;
位置 方法名 形参列表 返回值 访问修饰符
方法重写 子类 相同 相同 相同 不能比父类更严格
方法重载 同类 相同 不同 无关 无关
何时使用继承
与真实世界类似,符合is-a关系的设计使用继承;
继承也是代码重用的一种方式,将子类所有的属性和行为都放到父类里;
多态
父类调用子类方法实现
同一个引用类型,使用不同的实例而执行不同操作 (父类引用子类对象)
如何实现多态
使用继承
子类重写父类的方法
父类引用子类
纵向继承,横向接口;
先天继承,后天接口;
所有方法都是 public abstract; (书上允许类方法,default方法说的是Java8允许)
接口特性:
接口不可以被实例化;
实现类必须实现接口的所有方法,否则实现类必须是抽象类;
实现类可以实现多个接口,来弥补java不能多继承;
接口中的变量都是静态常量;
编码实现:
编写接口;
实现接口;
使用接口;
接口是一种规范
面向接口编程:
体现在接口名称和注释上;
程序设计时面向接口的约定而不考虑具体实现;
接口的优点:
可以被多继承
设计和实现完全分离
更自然的使用多态
更容易搭建程序框架
更容易更换实现

浙公网安备 33010602011771号