首页 > 学院 > 开发设计 > 正文

抽象函数和抽象类

2019-11-14 21:41:22
字体:
来源:转载
供稿:网友
抽象函数和抽象类

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

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

abstract void fun();

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

什么是抽象类?

使用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();      }}

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

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

为什么要使用抽象类?

如果把父类定义为抽象类,把要由子类来实现功能的函数定义为抽象函数,如果忘记复写就会产生语法错误。强制要求子类在继承父类时对这个抽象函数进行复写来减少错误。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表