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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 许万里 中级黑马   /  2013-3-11 09:48  /  1559 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

给我讲下抽象方法呗  谢谢   语法  用处什么的  

评分

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

查看全部评分

4 个回复

倒序浏览
本帖最后由 许庭洲 于 2013-3-11 20:06 编辑

1. 抽象类也可以定义抽象方法。方法是将关键字 abstract 添加到方法的返回类型的前面。
例如:
public abstract class A
{
    publicabstract void DoWork(int i);
}
2. 抽象方法没有实现,所以方法定义后面是分号,而不是常规的方法块;
3. 抽象类的派生类必须实现所有抽象方法;
4. 当抽象类从基类继承虚方法时,抽象类可以使用抽象方法重写该虚方法;
例如:
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public class D
{   
        public virtual void DoWork(int i)   
        {        
            //Original implementation.   
        }
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public abstract class E : D
{   
         public abstract override void DoWork(int i);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public class F : E
{   
        publicoverride void DoWork(int i)  
       {        //New implementation.    }
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
5. 如果将虚方法声明为抽象方法,则它对于从抽象类继承的所有类而言仍然是虚的;
6. 继承抽象方法的类无法访问该方法的原始实现。在前面的示例中,类 F 上的 DoWork 无法调用类 D 上的 DoWork。在此情况下,抽象类可以强制派生类为虚方法提供新的方法实现。

评分

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

查看全部评分

回复 使用道具 举报
.抽象方法就是在声明方法时加上abstract关键字,要注意以下两点:
1. 抽象方法必须声明在抽象类中
2. 声明抽象方法时,不能使用virtual  static  private 修饰符
抽象方法声明引入了一个新方法,但不提供该方法的实现,由于抽象方法不提供方法的实现 ,因此抽象方法的方法体只能包含一个分号.
当从抽象类派生一个非抽象类时,需要在非抽象类中重写抽象方法,以提供方法的实现,重写抽象方法时使用override关键字.

评分

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

查看全部评分

回复 使用道具 举报
抽象类中的所有方法不一定全是抽象方法,但是包含抽象方法的类被称作抽象类
抽象方法 没有方法体,即方法没有 具体实现
同样 不允许包含 { }

例如:
public abstract class Animal //编写类
{
public abstract string Sound(); //创建抽象方法
}

抽象方法的 实现 必须 让派生类实
在派生类中,必须实现基类中的抽象方法

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

public class People:Animal //派生自Animal 类
{
public string country;
public override string Sound() //实现抽象方法
{
return "language"; //返回值
}
}
回复 使用道具 举报
抽象方法:抽象方法其实就是方法中没有方法体的方法
注意事项:
1,该方法只能用abstract去修饰
2,当一个含有抽象方法的类被子类继承的时候,该方法必须被重写
目前能想到的只有这些,希望可以帮到你
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马