爱程序网

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类中的抽象方法

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

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

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

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

 

大一狗初学,不对请谅解

关于爱程序网 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助