java接口和抽象类

发布时间:2017-1-21 1:57:45 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"java接口和抽象类",主要涉及到java接口和抽象类方面的内容,对于java接口和抽象类感兴趣的同学可以参考一下。

abstract:抽象类和抽象方法必须使用abstract修饰符来定义,有抽象方法的类只能被定义成抽象类,抽象类里可以没有抽象方法。 抽象类和抽象方法的规则如下: A:抽象类必须使用abstract修饰符修饰,抽象方法也必须使用abstract修饰,抽象方法不能有方法体。 B:抽象类不能被实例化,无法使用new关键字来调用抽象类的构造器来创建抽象类的实例。即使这个抽象类里不包含抽象方法,这个抽象类也不能创建实例。 C:抽象类可以包含属性、方法(普通的方法和抽象方法都可以)、构造器、初始化块、内部类、枚举类六种成分。抽象类的构造器不能创建实例,主要作用是用于被子类调用。 D:包含抽象方法的类(直接定义一个抽象方法;继承了一个抽象父类,但没有完全实现父类包含的抽象方法;以及实现了一个接口,但没有完全实现接口包含的方法)只能被     定义成抽象类。      抽象方法和空方法体的方法不是同一个概念。例如public abstract void test();是一个抽象方法,它根本没有方法体,即方法定义后面没有花括号;但是public void test(){}; 是一个普通方法,它已经定义了方法体,只是方法体为空,因此这个方法不能用abstract修饰。 抽象类不能创建实例,只能被当做父类被其他子类调用。 抽象类是从多个具体类抽象出来的父类,它具有更高层次的抽象。 从多个具有相同特性(圆、三角形、多边形等具有周长和面积)的子类中抽象出一个抽象类,以这个抽象类作为子类的模板,从而避免子类设计的随意性。 =============================================++++++++++++++++++++++++++++++++++ 接口: 抽象类是从多个子类中抽象出来的模板,如果将这种抽象进行的更彻底,则可以提炼出一种更加特殊的“抽象类”——接口(interface),接口不能包括普通方法, 接口里所有方法都是抽象方法。 接口的定义:使用interface关键字, 【修饰符】 interface 接口名 extends 父接口1,父接口2...{     零个到多个常量     零个到多个抽象方法定义 } A:修饰符可以public或者省略,如果省略了修饰符,则默认采用包下面的访问控制修饰符。 B:接口名与类名命名规范相同;如果遵守java可读性规范,则接口有多个有意义的单词连缀而成,每个单词首字母大写,单词与单词无任何分割。 C:一个接口可以有多个直接父接口,接口只能继承接口,不能继承类。 一个接口可以继承多个父接口。 由于接口定义的是一种规范,因此接口里不能包含构造器和初始化块定义,接口里可以包含的属性(只能是常量)、方法(只能是抽象实例方法)、内部类(内部接口)和枚举类。 +++++++++++++++++++ 一个类可以实现一个或多个接口,继承使用extends关键字,实现使用implements关键字。因此一个类可以实现多个接口 【修饰符】 class 类名 extends 父类 implements 接口1,接口2... {     类体部分 } ++++++++++=============+++++++++++++++++++================ 接口和抽象类的特征: 相同:A:接口和抽象类都不能被实例化,它们都位于继承书的顶端,用于被其他类实现和继承。 B:接口和抽象类都可以包含抽象方法,实现接口或继承抽象类的普通子类,必须实现接口或抽象类的所有抽象方法。 接口作为系统和外界交互的窗口,接口体现了一中规范。对于接口的实现者而言,接口规定了实现者必须向外提供哪些服务(以方法的形式提供); 对于接口的调用者而言,接口规定了调用者可以调用哪些服务,以及如何调用这些服务(如何调用方法)。当在一个程序中使用接口时,接口是多程序的通信标准。 抽象类则不同,抽象类作为多个子类的共同父类,它体现了一种模板式设计。抽象父类作为多个子类的抽象父类,可以被当做系统程序实现的中间产品,这个中间产品已经实现了 系统的部分功能,必须有更进一步的完善。 ---------------------------------------------- 除此,接口和抽象类有以下区别 1:接口里只能保护抽象方法,不能包含已经实现的方法;抽象类可以包含普通方法。 2:接口里不能定义静态方法;抽象类里可以定义静态方法。 3:接口只能定义常量;抽象类可以定义普通属性,已可以定义静态的常量属性。 4:接口不包含构造器;抽象类可以包含构造器,构造器并不是用于创建对象,而是让子类调用这些构造器来完成抽象类的初始化操作。 5:接口里不能包含初始化块;抽象类可以。 6:一个类最多只能有一个父类(包括抽象类);但一个类可以实现多个接口,通过实现多个接口可以弥补java单继承的不足。

上一篇:一起学WF3.5【12】
下一篇:OpenStack建立实例完整过程源码详细分析(11)

相关文章

相关评论