Java面向对象的三大特性
1.封装
2.继承
3.多态
1.1封装:封装的优点
将数据与数据的操作组装起来就叫封装
- 良好的封装能够减少耦合。
- 类内部的结构可以自由修改。
- 可以对成员变量进行更精确的控制。
- 隐藏信息,实现细节
2.1继承:类与类之间的关系;子类继承父类,子类拥有父类的属性和方法
注:Java 不支持多继承,但支持多重继承。
继承的特性
- 子类拥有父类非 private 的属性、方法。
- 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展
- 子类可以用自己的方式实现父类的方法。
- Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 A 类继承 B 类,B 类继承 C 类,所以按照关系就是 C 类是 B 类的父类,B 类是 A 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。
- 提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)。
继承关键字
继承可以使用 extends 和 implements 这两个关键字来实现继承,而且所有的类都是继承于 java.lang.Object,当一个类没有继承的两个关键字,则默认继承object(这个类在 java.lang 包中,所以不需要 import)祖先类。
注 super 与 this 关键字
super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。
this关键字:指向自己的引用。
多态:一个事物的多种表现形态
class People{
void say(){
System.out.println("大家好,我是良民");
}
}
class Teacher extends People{
void say(){
System.out.println("大家好,我是一名老师");
}
}
public class Demo {
public static void main(String[] args) {
People obj = new People(); // 引用父类实例
obj.say();
obj = new Teacher(); // 引用子类实例
obj.say();
}
}
obj 既可以是人类,也可以是教师,它有不同的表现形式,这就被称为多态。多态是指一个事物有不同的表现形式或形态。
多态存在的三个必要条件:要有继承、要有重写、父类变量引用子类对象。