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

抽象函数和抽象类

时间:2014-10-29 23:51:57      阅读:266      评论:0      收藏:0      [点我收藏+]

标签:blog   http   ar   使用   java   sp   div   on   2014   

函数由函数的定义(返回值类型、函数名和参数列表)和函数体构成。

抽象函数:只有函数的定义,没有函数体,使用abstract关键字定义。如

abstract void fun();

bubuko.com,布布扣

错误原因:在一个类当中拥有一个或多个抽象函数,那这个类必须定义为抽象类。

什么是抽象类?

使用abstract定义的类叫做抽象类(基类)。

[1] 不能调用抽象类的构造函数从而生成抽象类的对象。

[2] 一个类当中包含抽象函数,那么这个类必须是抽象类。

[3] 一个类当中没有抽象函数,那么这个类也可以是抽象类。

抽象类的作用:用于被继承,抽象类的子类可以生成对象

当子类继承了作为父类的抽象类后,由于抽象类的抽象函数也可以被继承,根据第[2]条需要把子类定义为抽象类,但这样还是不能生成对象,除此之外,可通过复写抽象函数来增加函数体,这样就可以生成对象了。

abstract class Person{
      Person(){
           System.out.println("Person的构造函数");
      }
      abstract void eat();//抽象函数,也可以被继承
}

 

class Chinese extends Person{
      Chinese(){
           System.out.println("Chinese的构造函数");
      }
      void eat(){ //复写
           System.out.println("用筷子吃饭");
      }
}

 

class Test{
      public static void main(String args[]){
           Person p = new Chinese();//向上转型
           p.eat();
      }
}

bubuko.com,布布扣

 

抽象类可以拥有构造函数吗??

虽然不能用new来调用抽象类的构造函数,但是抽象类的子类可以通过super来调用抽象类的构造函数,所以结论是可以的。

 

抽象函数和抽象类

标签:blog   http   ar   使用   java   sp   div   on   2014   

原文地址:http://www.cnblogs.com/chavez-wang/p/4060887.html

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