封装:隐藏实现细节的过程;1)类的成员变量可为只读或只写;2)类可以对存储在成员变量中的内容有一个整体的控制;3)类的用户不需要知道类是如何存储数据的(important);3)利于分工;4)代码的重用性
继承:通过扩展一个已有的类,并继承该类的属性和行为;1)代码的可重用性;2)父类的属性和方法可用于子类;3)子类可以扩展父类的属性和方法;4)使设计应用程序变得更简单;
抽象:抽象类不能产生对象,即不被实例化,必须被子类继承; 有抽象方法的类一定为抽象类,但为抽象类的不一定有抽象方法,抽象方法必须被子类重写;
多态:相同的行为,不同的实现;1)静态多态:程序在编译时系统就能决定调用那个方法(重载);2)动态多态:在运行期才知道调用哪一个里面的方法(重写、动态绑定);
在多态里面会涉及到一个叫做向上转型的技术,其实这个很好理解,比如,我可以说男人是人,但是不能说人是男人,也就是说在new衣服父类对象的时候可以采用子类的构造方法,而父类要向下转型则需要通过 instanceof 关键字来进行判断父类对象是不是子类类型,否则会报错。
抽象类和借口的作用比较相似,但是又有不同,抽象类像是一个模板,而接口则更像是一种标准或是表示具有某种能力,且接口弥补了类智能单继承的缺陷