码迷,mamicode.com
首页 > 其他好文 > 详细

抽象类

时间:2017-09-03 11:08:21      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:没有   必须   取出   out   无法   属性   div   注意   实现   

一、为什么要有抽象类

看下面一段代码:

class 狗
{
    void 叫()
    {
          System.out.println("汪汪“);
    }
}
class 狼
{
    void 叫()
    {
          System.out.println("嗷嗷“);
    }
}

  这两个类中都有相似过程,但是过程中的内容确不相同。可以将这两个类进行抽取提升,建立一个父类。代码如下:

abstact class 犬科
{
      abstract void  叫();
}
class 狗 extends 犬科
{
     void 叫()
     {
          System.out.println("汪汪");
     }
}
class 狼 extends 犬科
{
     void 叫()
     {
         System.out.println("嗷嗷");
     }
}

  将相同的属性和方法提取出来,在父类中形成一个抽象的属性和方法,用关键字abstract表示。而抽像方法的内容是空的,具体内容在子类中实现。所以要注意的是抽象方法定义是没有花括号这个函数体。

       包含有抽象属性或方法的类称为抽象类。

       抽象类特点:

       1. 方法只有声明没有实现时,这个方法就是抽象方法,需要被abstract修饰。抽象方法必须定义在抽象类中,该类也必须用abstract修饰。

       2. 抽象类不能被实例化,因为抽象类含有抽象方法,而抽象方法没有具体的函数体,无法实例化。

       3. 抽象类必须由其子类实现其所有的抽象方法后才可以实例化,否则其子类仍然是抽象类。

抽象类

标签:没有   必须   取出   out   无法   属性   div   注意   实现   

原文地址:http://www.cnblogs.com/jsddj/p/7468883.html

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