1.封装:把没有必要暴露的细节隐藏起来
良好的封装能够减少耦合。
类内部的结构可以自由修改。
可以对成员进行更精确的控制。
隐藏信息,实现细节。
private修饰类的属性 并提供get set方法
2.继承:子类继承父类,子类获得父类的成员属性和成员方法
构造器不参与继承!extends关键字表示继承!
extends: 扩展
3.多态:产生的条件
1.必须有子类继承父类2.子类重写父类的方法
3.父类的引用指向了子类的实例
4.对象的行为和子类保持一致
多态 例如:Father son=new Son();
Father son是编译类型
new Son 是运行类型
出现多态的情况是:编译类型和运行类型不一致
多态的概念:把一个子类对象直接赋给一个父类引用变量
与对象的实例方法不同,对象的实例变量不具备多态性
父类:superclass(超类 基类)
子类:subclass
子类和父类的关系:子类是一个父类(is a的关系)
4.子类重写父类的方法:
1.访问修饰符 子类比父类的大或相同
2.返回值类型 子类比父类的小或相同
3.方法签名 子类和父类的保持一致
5.for (Fruit fruit : arr) {
1)Fruit类型的变量(对象) 无法直接调用子类特有的方法
2)计算机始终认为fruit就是Fruit类型的变量
3)instance:实例
instanceof 用于强制转换可以增强代码的健壮性
4)对象名 instanceof 类名 : 判断前面的对象是否是后面的类实例化出来的
5)"instanceof"运算符的前一个操作数通常是一个引用类型变量,
后一个操作数通常是一个类,它用于判断前面的对象是否是后面的类的实例