A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jy郑娟 中级黑马   /  2013-3-15 14:45  /  3245 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

什么是抽象函数?

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

5 个回复

倒序浏览
抽象类中可以定义抽象方法,如果一个方法要声明为抽象方法,则方法前加上abstract修饰符即可。抽象方法是一个新的虚方法,它不提供具体的方法实现代码。只能在抽象类中声明抽象方法,对抽象方法,不能使用static或virtual修饰符,而且方法中不能有任何可执行代码,只要给出方法的原型就可以了。

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
当多个类中出现相同功能,但是功能主体不同,这是可以进行向上抽取,这时,只能抽取功能定义,不能抽取功能主体。抽取出来的功能定义就是抽象函数。

如:
  1. abstract class A
  2. {
  3.      abstract void test();   //B、C类中抽取出来的抽象函数
  4. }

  5. abstract class B extends A   //B继承A
  6. {
  7.      void test()
  8.       {System.out.print("bbb");}
  9. }

  10. abstract class C extends A    //C继承A
  11. {
  12.      void test()
  13.      {System.out.print("ccc");}
  14. }
复制代码
抽象函数的特点有:
1、抽象函数一定存在抽象类中;
2、抽象方法和抽象类都必须被abstract关键字修饰。

抽象函数没有什么特别的意义,抽象类和一般类没什么大的区别,仅仅是不让该类创建对象。
继承中,抽象类中的抽象函数要被使用,必须有子类复写期所有的抽象方法后,建立系类对象后调用。

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
抽象函数无具体实现代码,子类重写抽象函数以实现多态。
回复 使用道具 举报
C#允许把类和函数声明为abstract,抽象类不能实例化,而抽象函数没有执行代码,在子类中重写父类的方法。
回复 使用道具 举报
抽象函数就是抽象方法
抽象类中的所有方法不一定全是抽象方法,但是包含抽象方法的类被称作抽象类
抽象方法 没有方法体,即方法没有 具体实现
同样 不允许包含 { }
例如:public abstract class Animal //编写类
{
public abstract string Sound(); //创建抽象方法
}

抽象方法的 实现 必须 让派生类实
在派生类中,必须实现基类中的抽象方法
在派生类中,必须使用override 关键字,来实现抽象的方法    来表示此方法 是对基类的抽象方法的实现

例子:
public class People:Animal //派生自Animal 类
{
public string country;
public override string Sound() //实现抽象方法
{
return "language"; //返回值
}
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马