码迷,mamicode.com
首页 > 编程语言 > 详细

java抽象类

时间:2016-03-27 21:17:22      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:

不多说,先来段代码。

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

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

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

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

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

 

大一狗初学,不对请谅解

java抽象类

标签:

原文地址:http://www.cnblogs.com/-new/p/5326710.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!