序言

Java是一个面向对象的编程语言,面向对象是把构成问题的事物分解成不同的对象,这些对象共同参与解决问题。面向对象有三大特征:封装、继承和多态。(有时候会问四大特征,那加个抽象)。

三大特征(多加了一个抽象)

封装:将对象的具体实现细节隐藏起来,只对外提供公共的访问点。
继承:子类继承父类所有的属性和方法,可以把子类看作一个特殊的父类。
多态:父类引用变量指向子类对象,当子类中含有与父类相同名字的方法和成员变量时,调用该父类引用,若是成员变量,则调用的是父类的成员变量;若是成员方法,则调用的是子类的成员方法。这意味着用一个类型的对象在执行同一方法时,可能表现出多种行为特征。
抽象:不了解全部问题,只考虑部分问题。例如:当写一个person类时,不考虑个体,这个人有什么特征,而是考虑一个群体,整个人类有什么属性特征。

封装的目的

1.隐藏类的实现细节
2.只能通过公共访问点访问数据
3.可以进行数据检查,例如价格不可能出现负数,在set方法里进行控制
4.方便修改,提高代码的可维护性

多态的理解

子类是一种特殊的父类,所以可以直接把父类引用指向子类对象,无需任何类型转换,这叫做向上转型。
当父类引用指向子类对象时,在编译期,该引用变量的类型是父类,在运行期间,该引用变量的类型是子类。例如,当父类中出现成员变量a和成员方法eat(),子类中也出现了相同的成员变量和成员方法。当调用该引用变量的成员变量a时,出现的结果是父类的成员变量a;当调用该引用变量的成员方法eat()时,出现的结果是子类的eat()。这意味着,相同类型的变量,调用同一个方法时,可能出现不同的行为特征,这就是多态。多态可以提高程序的可扩展性,让代码更加简洁。

单继承

Java是单继承的,指的是一个类只能有一个直接父类,但是可以有多个间接父类。Java只能单继承可以避免多继承时产生的混淆。