面向对象中有三大特性,分别是封装,继承,多态。
封装:
是指隐藏对象的属性和实现细节,仅对外提供公共的访问方式。好处是易于调用,不易被修改,提高安全性。
在JAVA中有四个修饰符,分别是public,private,default,protected。这四个修饰符分别有着不同的特点。
public:在整个项目中都可以调用。
private:仅在本类中可以调用。
default:在本包中可以调用。
protected:在本包和子类中可调用。
继承:
子类会自动继承父类的变量与方法,在子类中可以调用父类的方法和变量。
当子类和父类有同名的成员变量时,则会发生隐藏现象,即子类的成员变量会屏蔽掉父类的同名成员变量,若要在子类中调用父类的同名成员变量,则要用到super关键字。
当子类和父类中有同名的成员方法时,则会发生覆盖,如果要在子类中调用父类的同名成员方法,同样要用到super关键字。
注意:隐藏和覆盖是两个不同的概念。隐藏是针对成员变量和静态方法的,而覆盖则是针对普通方法的。
多态:
多态存在的三个必要条件:
一:要有继承。二:要有重写。三:父类引用指向子类对象。
多态分为编译时多态和运行时多态。
编译时多态指对于多个同名方法,如果在编译时能够确定执行同名方法中的哪一个,则称为编译时多态。运行时多态指如果在编译时不能确定,只能在运行的时候才能确定执行多个同名方法中的哪一个,则成为运行时多态。