现在的位置: 首页 > 综合 > 正文

JAVA–抽象类和接口以及多态

2014年01月29日 ⁄ 综合 ⁄ 共 1391字 ⁄ 字号 评论关闭

抽象:不具体,不完善,不针对实现细节。

修饰符:public 包级私有 abstract final(后两个不能同时使用)

                                      抽象类
作用:
1) 代码服用 2)指定接口  3)子类指向父类抽象类 4
注意:
1) 不能被new  2)抽象方法--只有方法定义无方法体  3)可以没有抽象方法   4)抽象方法必须定义在抽象类或者是接口中
5)abstract不能修饰属性   6)static可以定义非抽象方法和字段

abstract注意事项
1) 不存在抽象属性   2)不能修饰构造方法  3)抽象方法的类必须是抽象类
4)抽象类可以不定义抽象方法 5)不能被private static可以修饰非抽象方法 6)public和包级私有

                                     接口
可以理解为类对外暴露的行为,也就是方法。
接口的概念:是一组类的规范,在接口中不提供任何方法实现。所有方法均是抽象方法

接口定义:
修饰符是包级私有和public;接口名称应该与类名采用相同的命名规则;一个接口可以有多个直接的付接口;
接口可以继承接口,但不能集成类;接口中的方法必须是抽象方法;接口中没有构造方法;变量是常量

实现接口:

implements 注意的是。如果实现接口那么必须实现这个接口中所有的抽象方法,除非这个实现的类是一个抽象类。必须在extends后面。一个类可以实现多个接口。

                                     接口和抽象类比较

相同:
都不能够被实例化,都包含抽象方法,通过实现接口或者子类来实现这些抽象方法

不同:
从设计上:接口是一种规范和体癣。要求个各类之间遵守的标准,不关心细节。而抽象类是一种模版设计的体现,从多个子类中提取抽象形成父类。
从应用上:1.接口是一包含抽象方法和具体实现,接口只能包含抽象方法;2.抽象类可有构造方法,接口中不能有构造方法;3.抽象类可以有成员变量,接口只常量(public abstract final);4.抽象类中抽象方法可以使用public,protected和默认类型。而接口必须所有都是public.并且默认是public abstract;5.抽象类可以包含静态方法,而接口中不能包含静态方法;6.抽象类中的静态成员变量的访问类型可以是任意类型,而接口不许是public static类型

final:
变量
修饰成员变量:必须在构造方法结束钱对变量进行复制
修饰静态变量:必须在最后一个静态语句块前完成
修饰引用变量:不能呗重新指向其它对象
修饰方法参数:只能呗赋值一次
方法
简化优化工作,不能被重写,对象方法类型调用帮顶到方法实际类型,调用实现

不能派出生子类。不为继承而定义。处于安全,不希望有子类。类最终版本不会做改动

 

多态

多态:对象在面对同一个行为,呈现出不同的执行效果。作用是消除类型之间的耦合关系.允许将子类类型的指针赋值给父类类型的指针。
对象的多态性:体现在继承过程中,子类对象和父类对象之间的类型转换关系,在java。向上和向下转型。
PS.需要注意向上和向下的时候什么时候是强转,以及子类和父类方法,属性,构造,代码块的执行先后
多态与继承的方法重写一样。都是动态指针的概念。

在创建子类的过程中,会向上寻找最上层的父类,然后在从最上层向下逐层创建,但是方法的指向确是从最外成的。也就是说:创建子类先建父类,方法调用子类的。

多态是怎么实现的?将接口最为参数,或者返回类型。

抱歉!评论已关闭.