20180911work

多态
1.概念:在OOP中,多态是指一个对象有多种形式的能力。一个类的子类可以定义它们唯一的行为,同时共享父类的某些相同特征。(相同的行为,不同的实现)
2.分类
(1)静态多态
①概念:静态多态指的是程序在编译时,系统就能决定调用哪个方法,所以也称为编译时多态
②实现方式:方法重载
③调用规则:依据对象在定义时的类型相应地调用对应类中的重载方法
(2)动态多态
① 概念:动态多态指在运行中系统才能动态确定方法所指的对象,所以也称为运行 时多态。
② 实现方式:重写父类中的同名成员方法
③ 调用规则:依据对象在实例化时而非定义时的类型,相应地调用对应类中的同名成员方法。也就是说,动态多态主要通过动态绑定和重写的机制来实现。
④ 多态的技术基础
1)向上转型
a.概念:一个父类的引用变量可以指向不同的子类对象,或者说一个子对象可以被当作一个父类类型。
b.特点:
a)引用数据类型只能发生在父子之间,不能指鹿为马
b)应引用数据类型的向上转型,是指向父类转型编译器会自动识别
c)能转型成的原因是:父类的范围>子类的范围
d)父类的引用为什么可以指向子类的实现:子类实例中一定有一个完整的父类值数据
2)向下转型
a.引用数据类型向下转型是有风险的,不一定成功。
b.成功的条件
a)必须是父类的引用指向一个子类的实现
b)子类的引用最终必须指相同类型向子类的实现
3)instanceof关键字
a.概念:instanceof关键字用于判断运行时对象的真正类型。
b.引入原因:Java语言的多态机制导致了引用变量的声明类型和实际引用对象的类型可能不一致。为更准确鉴别一个对象的真正类型,Java语言引入了instanceof运算符。
c.主要作用:规避在强制向下转型中可能会出现的风险

4)动态绑定技术
运行时根据父类引用变量所指对象的实际类型执行相应的子类方法,从而实现多态性。

⑤ 多态的主要运用
1)多态参数:当方法的某个形式参数是一个引用的时候,与该引用兼容的任何对象都可以传递给方法,从而允许方法接受不同数据类型的形式参数。
2)多态最常见的应用是创建一个不是同一类型,但是有共同父类的数据集合。不同对象的集合称为异构集合。
3.多态总结
(1)使用父类类型的引用指向子类的对象。
(2)该引用只能调用父类中定义的方法,不能调用子类中独有的方法。
(3)如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法
(4)在多态中,子类可以调用父类中的所有方法。

抽象
1.抽象类
(1)概念
①当一个类的所有行为,都无法具体实现的时候,或者说这个类失去了被实例化的含义的时候,就可以将一个类抽象为抽象类
②不能被实例化的类
(2)特点
①在抽象类中,类的所有其它功能都存在,成员变量、方法、构造器都可以用同样的方式访问。我们只是不能创建抽象类的实例。
②抽象类中,不一定要有抽象方法,但是抽象类身上,不一定拥有抽象方法
③如果一个类中存在抽象方法,那么那个类就属于抽象类
④使用关键字abstract可以声明一个抽象类
⑤抽象类除了不能实例化以为,其他的都跟普通的类没有差别
(3)成员组成
①成员变量
②方法行为
③静态属性和行为
④初始化块
⑤构造器
1)但是构造器此时的作用并非是为了创建对象,而是为了用于分配成员变量的储存空间
⑥抽象方法
2.抽象方法
(1)将一个方法声明为抽象方法有两个结果:
①子主题 1类也必须声明为抽象类。如果一个类包含了抽象方法,那么该类也必须是抽象的。
②任何子类必须重写抽象方法,除非子类本身也是抽象的
(3)特点:抽象方法只有方法签名,没有方法体。
(4)作用:abstract还可以规范子类的行为,强制要求子类必须重写父类的方法实现这里写图片描述

猜你喜欢

转载自blog.csdn.net/Lsy_Coder/article/details/82629889