面向对象的三大特征
回顾java基础,简析面向对象的三大特征,来源于网络.整理版
封装
所谓的封装,就是隐藏对象的属性以及实现细节,对外提供访问方式.把属性和不需要对外提供的内容进行隐藏对外提供访问方式.
- 封装的优点 ,提高重用性,提高安全性,便于使用;
- 封装的缺点,将属性的等用修饰符修饰,使其不易被 直接访问;
- 实现方式 ,实体类使用访问权限修饰符private
继承
继承: 多个类具有共同的属性与行为的时候,将这些共同的部分抽取出来定义到一个公共的类中,其他及各类可以与这个公共的类形成继承关系,从而能在多个尅中不需要重复定义公共部分,这个公共的类就是父类,也成为超类或者基类,其他的类就是子类.子类可以直接访问父类的非私有化成员变量,访问父类的私有化成员变量,访问父类的私有化变量可以使用super.get
-
继承的优点 ,代码重用性提高,实现多态的前提,
-
继承的缺点,父类改变子类随之改变,强耦合关系;
-
实现方式 ,extends为关键字;
-
何时使用继承 ,具有公共的属性与行为操作的时候,提高复用性,具有一定的所属关系;
-
继承特点
成员变量:继承关系中同名的子类的成员变量,局部变量,父类的成员变量这三者之间的使用顺序:在具有相同的变量的这种情况下,不使用this,super等关键字进行调用
成员方法:
重写:子类中出现与父类一样的方法时,会出现子类方法将父类方法覆盖的情况,这 种情况成为重写.
注意事项:父类的私有方法不可以被重写.
子类重写父类的方法后,继续使用父类的方法 的时候,可以使用super调用
重写时,子类的方法访问权限大于或者等于父类的成员方法的访问权限
静态方法只能被静态方法覆盖
子类对于父类的功能有增强需求的时候,可以重写父类的 方法以增强功能 -
重写与重载: 重写:子父类之间,方法完全相同(返回值、方法名、参数列表),
但是子父类之间的方法体必须不同,否则没有意义!
重载:同一个类中,方法名相同,参数列表不同,与返回值无关!
(参数列表:包括两项:参数个数,对应参数的数据类型)
重载何时使用:当一个类中需要完成某个相同功能,但是方法的参数不同需要分别进行操作时!
7、构造方法a、子类中所有的构造方法默认都访问父类中无参构造
b、每个构造方法的第一行是super();super(参数列表);如果把这两行代码放在非第一行位置会报错
c、根据构造方法的特性,在手动给出任意一个构造方法的时候,之前默认的无参构造会被覆盖,此时具有
继承关系的时候,子类之前默认存在的每个构造都调用无参构造super();失效,
此时必须在每个构造方法中手动给出super(参数列表);的方式直接或间接调用之前手动在父类中给出
的构造!
d、构造方法执行了一定会创建相应对象吗?
不一定,当具有继承关系的类时,子类创建对象的时候会调用父类的构造方法,用来初始化父类的成员变
量这个时候父类的构造执行了,但是内存中并没有父类的对象!
e、构造方法是否可以被重写或者继承?
不可以,因为构造方法名需要与类名相同,假如出现继承或者重写关系,就会有子类中有一个与父类的类
名相同的构造方法,但是又由于构造方法需要与类名相同,此时子类类名需要与构造相同,这个时候就会
出现父类与子类的类名相同,父类类名构造方法名子类类名,不能存在同名的类!
多态
java程序中定义的引用变量所指向的具体类型和通过该引用类型发出的方法在调用时不确定,该引用变量发出的方法到底调用哪个类的实现的方法,必须在程序运行期间才能决定,这就是多态。
1、多态存在的前提
A.必须有子类和父类,具有继承或实现
B.子类必须重写父类的方法
C.父类的引用变量指向子类的对象
2、多态的优点
A. 可替换性,多态对一存在的代码具有可替代性
B. 可扩充性:增加的子类不影响已存在的类的特性的运行和操作
C. 接口性:多态时超类通过方法签名想子类提供了一个公共的接口,由子类来完善或者覆盖它而实现的
D. 灵活性:在应用中体现了灵活多样的操作,提高了使用的效率
E. 简化性: 多态简化对应用软件的代码的编写和修改过程,尤其在处理大量的对象的运算和操作时,这个特点尤为突出和重要
3、多态的缺点
A. 只能使用父类的引用访问父类的成员
4、多态中的成员特点:
成员变量:编译与运行时期都看父类!
成员方法:编译时期看父类,运行时期看子类
原文:https://blog.csdn.net/Wei_HHH/article/details/74864628
版权声明:本文为博主原创文章,转载请附上博文链接!