内部类
将一个类定义在另一个类里面,里面的那个类就称为内部类。内部类的出现,再次打破了Java单继承的局限性。
封装
封装的定义
封装(Encapsulation)是面向对象方法的重要原则,就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节。
封装的好处
- 良好的封装能够减少耦合。
- 类内部的结构可以自由修改。
- 可以对成员进行更精确的控制。
- 隐藏信息,实现细节。
继承
继承的定义
继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。关键字(extends)让类与类之间产生继承关系。
多态
多态的定义
对象在不同时刻表现出来的不同状态。
多态的注意事项
- 一定不能够将父类的对象转换成子类类型。
- 多态自始至终都是子类对象在变化。
- 父类的引用指向子类对象,该引用可以被提升,也可以被强制转换。
-
抽象
抽象的定义
抽象就是从多个事物中将共性的,本质的内容抽象出来。
抽象类
Java中可以定义没有方法体的方法,该方法的具体实现由子类完成,该方法称为抽象方法,包含抽象方法的类就是抽象类。
由来:
多个对象都具备相同的功能,但是功能具体内容有所不同,那么在抽取过程中,只抽取了功能定义,并未抽取功能主体,那么只有功能声明,没有功能主体的方法称为抽象方法。
抽象类特点:
- 抽象方法一定在抽象类中;
- 抽象方法和抽象类都必须被abstract关键字修饰;
- 抽象类不可以用new创建对象,因为调用抽象方法没意义;
- 抽象类中的抽象方法要被使用,必须由子类复写其所有的抽象方法后,建立子类对象调用; 如果子类只覆盖了部分的抽象方法,那么该子类还是一个抽象类;
- 抽象类中可以有抽象方法,也可以有非抽象方法,抽象方法用于子类实例化;
- 如果一个类是抽象类,那么,继承它的子类,要么是抽象类,要么重写所有抽象方法。
- 特殊:抽象类中可以不定义抽象方法,这样做仅仅是不让该类建立对象。
抽象类的成员特点:
- 成员变量:可以是变量,也可以是常量;
- 构造方法:有构造方法;
- 成员方法:可以是抽象方法,也可以是非抽象方法。