你的位置:首页 > Java教程

[Java教程]java抽象类


不多说,先来段代码。

public class Abstract{  public static void main(String[] args)  {    cl2 c=new cl2();    c.method();  }}abstract class Abc{  public abstract void method();  }class cl2 extends Abc{  public void method()  {        System.out.println("具体的方法");      }}

一个抽象类里面可以没有抽象方法

比如

abstract class Abc{  public void method()  {    System.out.println("抽象类面的方法可以是具体的");  }  }

这是一个抽象类,但是他的方法是具体,这是可以的,没有报错。

但是如果

class Abc{  abstract public void method();    }

这是会报错的,因为有抽象方法必须是抽象类。

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

 

class cl2 extends Abc{  public void method()  {        System.out.println("具体的类");      }}

此时继承了ABC类,cl2类是一个具体的类。我们区份一个类是抽象还是具体,就是看abstract关键字

如果有这个关键字,他就是抽象类,没有就是一个具体的类,所以上面的代码中cl2是具体类。

继续

abstract class Abc{  abstract public void method();    }class cl2 extends Abc{  }

这里会报错,cl2没有关键字abstract 所以他是一个具体的类,里面的方法必须具体,但是他继承了

ABC类,拥有了抽象方法,所以会报错,所以需要在cl2里面具体mehod方法。

当然也继承抽象类的子类也可以是抽象类

比如

abstract class Abc{  abstract public void method();    }abstract class cl2 extends Abc{  
}

cl2是一个抽象类,他继承了ABC类,拥有了ABC类中的抽象方法

但是他无需具体,因为他自己就是一个抽象类

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

上面是抽象类一些注意的点。

总的来说,一个抽象类可以没有抽象方法,但是有抽象方法必须是抽象类,具体的类里面必须都是具体的方法。

 

大一狗初学,不对请谅解