1 继承
extends关键字是继承的标志 java的类继承是单根继承的
继承所描述的是“is-a”的关系,如果有两个对象A和B,若可以描述为“A是B”,则可以表示A继承B,其中B是被继承者称之为父类,A是继承者称之为子类
【访问权限修饰符】【修饰符】子类名 extends 父类名{子类体}
子类继承父类的属性方法
父类先初始化在初始化子类
构造器不能被继承,子类默认调用父类无参构造器也可以通过super来调用并且super在第一行
如果父类没有构造器子类默认调用父类无参构造器
如果父类只有有参构造器 子类必须调用父类有参构造器或者添加父类无参构造器 否则报错
2 封装
比如说我们去买汉堡,只需要点餐买具体的一种汉堡,我们只关心结果并不去关心,卖家是如何制作汉堡的过程这就是封装的意义
封装把过程和数据包围起来,对数据的访问只能通过已定义的接口。面向对象编程始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。封装是一种信息隐藏技术,在java中通过控制成员的访问权限实现封装,即使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。 适当的封装可以让代码更容易理解和维护,也加强了代码的安全性。
通过private来修饰属性和方法来达到封装的效果
3 多态
多态就是不同类对同一消息做出的反应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式
比如说鼠标左键点击不同的按钮做出的反应也是各不相同
比较经典的就是 父类 引用 = new 子类(); 我们可以放入不同的子类调用的方法做出的响应也不同
引用变量在编译阶段只能调用其编译时类型所具有的方法,但运行时则执行它运行时类型所具有的方法
就可以看做 编译期把它看做父类来使用,运行期间看做子类来使用
多态存在的三个必要条件:
继承
重写覆盖
对象向上造型-父类引用指向子类对象