面向对象--多态
今天回来的时候成落汤鸡了,身上有点难受,不想动弹,想了半天不知道从哪里开头写。就先简单罗列一下大纲吧,再想起啥扩展点啥,总不能让这几天都给白费了。
1.1 Abstract抽象类
1.2 Interface接口
1.3 多态
1.4 模版设计模式
1.5 抽象类与接口的区别
1.6 什么时候使用抽象类,什么时候使用接口
1.7 构造代码块儿
来吧,准备动手整吧,趁着还没有迷糊之前,把知识点过一遍,要不会儿又该犯困写不出来了。
1.1 Abstract抽象类
抽象:笼统,模糊,看不懂!不具体。
1.1.1特点
1, 方法只有声明没有实现时,该方法就是抽象方法,需要被abstract修饰。抽象方法必须定义在抽象类中。该类必须也被abstract修饰。
1.1.2 抽象类中有构造函数吗?
有,用于给子类对象进行初始化。
1.1.3 抽象类可以不定义抽象方法吗?
可以的。但是很少见,目的就是不让该类创建对象。AWT的适配器对象就是这种类。 通常这个类中的方法有方法体,但是却没有内容。
1.1.4抽象关键字不可以和哪些关键字共存?
final 不行
1.1.5 抽象类和一般类的异同点?
相同点:抽象类和一般类都是用来描述事物的,都在内部定义了成员。
抽象类:不可以被实例化。
1.1.6 抽象类一定是个父类吗?
是的。因为需要子类覆盖其方法后才可以对子类实例化。
1.1.7 抽象类和接口的异同点:
相同点:都是不断向上抽取而来的。
1.1.8 Final关键字
final标记的类不能被继承。
1.2 Interface接口
接口是一种特殊的抽象类,接口中声明的所有方法都是抽象的
使用interface关键字定义一个接口。
定义接口使用的关键字不是class,是interface。
对于接口当中常见的成员:而且这些成员都有固定的修饰符。
由此得出结论,接口中的成员都是公共的权限,权限都是最大的。
类与类之间是继承关系,类与接口之间是实现关系。
接口不可以实例化。 只能由实现了接口的子类并覆盖了接口中所有的抽象方法后,该子类才可以实例化,否则,这个子类就是一个抽象类。
在Java中不直接支持多继承,因为会出现调用的不确定性,所以Java将多继承机制进行改良,在Java中变成了多实现。
一个类可以实现多个接口。一个类在继承另一个类的同时,还可以实现多个接口。
接口的出现避免了单继承的局限性。接口与接口之间是继承关系,而且接口可以多继承。
1.2.1 接口的特点:
接口是对外暴露的规则。
接口是程序的功能扩展。
接口的出现降低耦合性。
接口可以用来多实现。
类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口。
接口与接口之间可以有继承关系。
1.3 多态
1.3.1多态在代码中的体现
父类或者接口的引用指向其子类的对象。
1.3.2 多态的好处:
1.3.3多态的弊端
弊端:前期定义的内容不能使用(调用)后期子类的特有内容
1.3.4 多态使用的前提:
1, 必须有关系,要么继承,要么实现。
用于判断对象的具体类型。只能用与引用数据类型判断。主要用在判断接收的是否是自己需要的类型。通常在向下转型前用于健壮性的判断。
1.4 模版设计模式
在解决一些问题或者设计一个软件的时候,需要先定义一个模板,就相当于一种事先定义好的协议。以后要做这系列的事情都按照这个模板来做。
这样就实现统一化管理。
1.5 抽象类与接口的区别
抽象类中可以有不抽象的方法,接口中全是抽象的方法
1.6 什么时候使用抽象类,什么时候使用接口
如果能用接口,就不用抽象类,因为别人实现接口可以不占用继承的位置。
1.7 构造代码块儿