Java面向对象的三大特性就是指封装、继承、多态了。
一、封装:
概念:封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
(举例:笔记本电脑就是一个封装体,Java语言中最小的封装体就是函数)
好处:
将变化隔离
便于使用
提高重用性
提高安全性
封装原则:
*将不需要对外提供的内容都隐藏起来。
*把属性都隐藏,提供公共方法对其访问。
二、继承:
*继承的关系是传递的;继承简化了人们对事物的认识和描述,抽象了公共的属性和行为;
继承提高了一致性,减少程序的维护性;继承是单一继承。
*子类可以继承父类的属性和方法,但是不能继承private的成员。
好处:
*提高了代码的复用性
*让类与类之间产生了关系,给第三个特征多态提供了前提
三、多态:
字面理解,同一类事物的多种存在形态,就是一个对象对应着不同类型。
在代码中的体现,父类或者接口的引用指向其子类对象。
多态的必要条件:
1)必须是类和类之间有关系。要么继承(继承类),要么实现(实现接口)。
2)通常还要覆盖
多态的特点:
1)编辑时:要查看引用变量所属的类中是否有所调用的成员。
2)运行时:要查看对象所属的类中是否有所调用的成员。
成员变量:
1)编译时:参考引用类型变量所属的类中是否有调用的成员变量。有,编译通过,没有,编译不通过。
2)运行时:参考引用类型变量所属的类中是否有调用的成员变量,并运行该所属类中的成员变量。
以上通俗讲就是:编译和运行都参考等号的左边,只看引用变量所属的类。(Animal a = new Dog();)