abstract修饰符

来源:互联网 发布:自动股票交易软件 编辑:程序博客网 时间:2024/04/20 05:14
abstract
1抽象方法不能有实体
public abstract void method(){};
必须改为public abstract void method();
而且如果类中有abstract这个类就必须加abstract关键字变为抽象类,而且抽象类不能实例化
2.抽象类可以没有抽象方法,但是有抽象方法的类必须被定义为抽象类
3.如果子类没有实现父类的所有抽象方法,那么子类也必须被定义为抽象类
4.没有抽象构造方法,也没有抽象静态方法
5.抽象类中可以有非抽象的构造方法,创建子类的实例时会调用这些构造方法,抽象类不能被实例化,然而可以创建一个引用变量,其类型是抽象类,但是它引用的是非抽象的子类
abstract class Base{}
public class Sub extends Base{
   public static voidmain(String[]  args)
   {
       Base b = new Base();  //编译错误
       Base b2 = new Sub();  //可以
   }
}
6.抽象类及抽象方法不能被final修饰符修饰。abstract和final不能连用。因为抽象类只有允许创建其子类,它的抽象方法才能被实现,并且只有它的具体子类才能被实例化,
而用final修饰的类不允许拥有子类,用final修饰的方法不允许子类方法覆盖,因此连用会自相矛盾

原创粉丝点击