分清Java抽象方法、抽象类以及接口

总结了一下java中抽象方法、抽象类和接口,防止大家傻傻分不清楚~概念性的东西都有点绕,请读者一定看清每个字词,认真体会。

抽象方法和抽象类

    抽象方法仅有声明而没有函数体,必须使用abstract关键词限定。使用abstract关键词限定的类是抽象类,抽象类不可以实例化为对象。只要包含抽象方法,那么这个类就是抽象类,抽象类使用abstract限定。抽象类可以同时包含抽象方法和普通方法(即有函数体的方法)。抽象类可以不包含任何抽象方法而都是普通方法,用abstract限定为一个抽象类只是为了阻止其实例化为对象。如果从一个抽象类继承,并想创建该新类的对象,那么就必须为基类中的所有抽象方法提供方法定义。如果不这样做(可以选择不做),那么 导出类便也是抽象类,编译器会强制我们用abstract关键字来限定这个类。

接口

interface关键字使抽象的概念更向前迈进了一步,或者说接口是“做绝了的”抽象类,它根本不提供任何具体函数实现,所有的方法都只是声明而没有任何方法体。

    接口中可以包含域(属性),但是这些域隐式地是static和final的,即使你不显式地这样声明。接口中的所有方法只是函数声明而没有函数体。接口中的所有方法必须被定义为public的(即使你不显式地用public修饰,它也是public的),因为接口中的所有方法都是对外的(都是暴露在外的接口 ,好像有点绕==!)。接口必然不可以实例化为对象。实现接口的子类必须实现接口中的所有方法。可以继承一个接口,从而得到一个新的接口,新接口又拥有自己的方法声明。

绊脚石乃是进身之阶。

分清Java抽象方法、抽象类以及接口

相关文章:

你感兴趣的文章:

标签云: