当前位置:首页 > Windows程序 > 正文

三、两者区别: 总结:抽象方法是只有方法名称

2024-03-31 Windows程序

一、抽象要领:只在抽象类中界说,要领修饰符不能使用private,virtual,static.

抽象要领如下示:

public abstract class People   //声明一个抽象类

{

public abstract void study();  //抽象要领只能界说在抽象类中。

}

public class Student:People   //担任抽象类

{

public  override void study()     //重写抽象类的抽象要领

{

Console.WriteLine("好好学习,天天向上!");

}

}

public class Program

{

static void Main(string[] args)

{

Student t= new Student();//实例化派生类

People  p= t;   //使用派生类东西实例化抽象类

//以上两句等价于  People p = new Student();//使用派生类东西实例化抽象类;

p.study(); //使用抽象类东西挪用抽象类中的抽象要领study    

}

}

总结:(1)象要领只能声明在抽象类中,使用关键字abstract

(2)抽象类中的抽象要领必需被子类重写。

【抽象要领没有要领体,子类必需重写要领体!!,因此抽象要领可以当作是一个没有要领体的虚要领】

二、虚要领:使用virtual修饰的要领:

虚要领可以有要领体。具体示例如下:

public class BaseClass         //创建一个基类

{

public virtual string GetName()    //使用virtual关键字创建父类中的虚要领

{

return "父类虚要领体":     

}

}

public class SubClass:BaseClass    //子类担任父类

{

public override string GetName();   //子类重写父类虚要领

{

return "重写父类虚要领!";

}

}

以上的示例:父类中的虚要领被派生类重写了。

注意事项:virtual修饰符不能与private、static、abstract、override修饰符同时使用。

ps:override修饰符不能与new 、static、virtual修饰符同时使用,并且重写要领只能用于重写基类中的虚要领。

虚函数的限制:

* 虚函数仅适用于有担任关系的类东西,所以只有类的成员函数才华说明为虚函数;

*静态成员函数、内联函数、结构函数不能是虚函数;

*析构函数可以是虚函数。

三、两者区别:

总结:抽象要领是只有要领名称,,没有要领体(也就是没有要领具体实现),子类必需重写父类抽象要领;

虚函数是该要领有要领体,但是子类可以笼罩,也可不笼罩。

(1)虚要领有要领体,抽象要领没有要领体。抽象要领是一种强制派生类笼罩的要领,否则派生类将不能被实例化;

(2)抽象要领只能在抽象类中声明,虚要领不是;

(3)派生类必需重写抽象类中的抽象要领,虚要领例不须要。

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/35421.html

Jm-杰米博客Jamie
草根站长的技术交流乐园!IT不会不要紧快来好好学习吧!
  • 20786文章总数
  • 7494590访问次数
  • 建站天数
  • 友情链接