Java关键词解读之abstract

来源:互联网 发布:林肯mac 编辑:程序博客网 时间:2024/05/18 02:01
abstract

解释:抽象,抽象的

------------------------------------------------------------------

用法:类修饰符的一种,可以用来修饰类,方法。              

           被修饰的类不能够实例化(即不能用new关键字得到对象),

           被修饰的方法不能够实现

           一个抽象类中不一定要有抽象方法,但是一个类里面有抽象方法就一定是抽象类

           如果由类要继承抽象类的话,必须要实现里面的抽象方法。构造方法和静态方法不可以修饰为抽象。

------------------------------------------------------------------

abstract 关键字可以修改类或方法。

abstract 类可以扩展(增加子类),但不能直接实例化。

abstract 方法不在声明它的类中实现,但必须在某个子类中重写。

-示例-

public abstract class MyClass{}public abstract String myMethod();


-注释-

采用 abstract 方法的类本来就是抽象类,并且必须声明为 abstract

abstract 类不能实例化。

仅当 abstract 类的子类实现其超类的所有 abstract 方法时,才能实例化 abstract 类的子类。这种类称为具体类,以区别于 abstract 类 。

如果 abstract 类的子类没有实现其超类的所有 abstract 方法,该子类也是 abstract 类。

abstract 关键字不能应用于 static、private 或 final 方法,因为这些方法不能被重写,因此,不能在子类中实现。

final 类的方法都不能是 abstract,因为 final 类不能有子类。

------------------------------------------------------------------

1> abstract抽象用在类的声明中来指明一个类是不能被实例化的,但是可以被其他类继承。一个抽象类可以使用抽象方法,抽象方法不需要实现,但是需要在子类中被实现。它的用途是向子类提供通用的信息。抽象类可以包含正常的类包含的任何东西,也就是说,类和实例变量,以及带有任何修饰词的方法。只有抽象类可能有抽象方法。如果一个不是抽象的类包含一个抽象方法,那么将会出现编译错误。

例子:如果下列的一个成立,那么一个有抽象方法:

a.它显式的声明了一个abstract方法。

b.它从它的直接父类继承了一个抽象方法。

c.一个直接的类的父借口声明或继承了它的一个方法(这因此必须是abstract)

2>如果用户声明private,static,和final方法为abstarct,编译错误将出现。不可能重设一个private方法,因为一个abstarct  private永远不能被实现。static方法总是可用的,因此必须有一个实现;static abstract将永远没有实现。final方法不能被重设,因此不回有final abstract方法的实现。

原文地址