不多說,先來段代碼。
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類中的抽象方法
但是他無需具體,因為他自己就是一個抽象類
------------------------------------
上面是抽象類一些注意的點。
總的來說,一個抽象類可以沒有抽象方法,但是有抽象方法必須是抽象類,具體的類裡面必須都是具體的方法。
大一狗初學,不對請諒解