OOP:面向对象
OOP:面向对象
面向对象的原则:高内聚,低耦合
–低耦合:降低程序中类之间的依赖关系
–高内聚:提升程序内部的性能
继承
1.什么是继承?
允许子类拥有父类的属性和行为。(除私有属性和行为)
2.优缺点
优点:提升了代码的复用性。
缺点:由于继承会有多层继承关系,层级结构非常复杂,会提供他们之间的依赖性。
3.继承的语法
子类 extends 父类
4.super关键字
–当创建子类对象时,会调用父类的空参构造器super()
–super可以通过子类构造器调用父类的构造器,可以初始化父类的成员属性。
–super可以调用父类的非私有方法。
–super和this同时存在的时候,一定先使用super调用父类的构造器,初始化父类的成员属性,再使用this关键字初始化子类的成员属性。
–所有子类都会默认调用父类的空参构造器
5.this关键字和super关键字的区别
–this:当前对象(子类对象)
–super:代表的是父类对象
6.方法重写override
--方法重新是子类重新定义父类的方法
要求:
①.子类重新的方法名,形参列表,返回值类型和父类一致。
②.子类重写的方法访问修饰符不低于父类的访问修饰符。
7.方法重载overload和方法重写overri的区别
①.方法重载要求在同一个类中
②.方法重写要求必须存在继承关系(子类和父类is-a)
③.方法重载要求方法名相同,形参列表不同(类型和数量不同)和返回值类型没有关系
④.方法重写要求方法名相同,形参列表相同,返回值类型相同。
多态
1.多态的理解
①.同一个动作作用于不同的对象产生的不同行为
②.多态就是一个对象的多种表现形式。
举例:F1
2.多态的优点
①.降低了程序之间的耦合度
②.提高了程序的可展性
3.多态的类型
①.编译时多态:静态的 方法重载(在编译期间调用相同的方法根据不同的形参列表来区分)
②.运行时多态:动态的 只有在运行期间才能确定使用的对象类型,才能确定变量的引用指向的是哪个实例
4.多态的必要性
①.继承:存在继承关系的子类和父类
②.重写:子类重新定义父类的方法(方法覆盖)
③.向上转型:父类的引用指向子类的实例Person p = new Man();
5.多态的体现方式
①.基于继承的体现方式
②.基于接口的体现方式