《2022年C#抽象类和抽象方 .pdf》由会员分享,可在线阅读,更多相关《2022年C#抽象类和抽象方 .pdf(3页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、C#抽象类和抽象方法如果一个类不与具体的事物相联系,而只是表达一种抽象的概念,仅仅是作为其派生类的一个基类,这样的类就是抽象类,在抽象类中声明方法时,如果加上abstract时就是抽象方法1.抽象类概述及声明抽象类与非抽象类的主要区别:抽象类不能直接被实例化 抽象类中可以包含抽象成员,但非抽象类中不可以 抽象类不能被密封举个小例子public abstract class oneClass public int i;public void denylau()2.抽象方法概述及声明声明抽象方法时需注意:抽象方法必须声明在抽象类中 声明抽象方法时,不能使用virtual、static、privat
2、e修饰符。在抽象类中抽象方法不提供实现。如:public abstract class myTestClass()public abstract void method();3.抽象类与抽象方法的使用直接举例子,讲解例子喽!using System;using System.Collections.Generic;using System.Text;namespace _ public abstract class myClass private string id=;private string name=;/编号属性及实现 /public string ID 名师资料总结-精品资料欢迎下载
3、-名师精心整理-第 1 页,共 3 页 -get return id;set id=value;/姓名属性及实现 /public string Name get return name;set name=value;/抽象方法,用来输出信息 /public abstract void ShowInfo();public class DriveClass:myClass /继承抽象类 /重写抽象类中输出信息的方法 /public override void ShowInfo()Console.WriteLine(ID+Name);class Program static void Main(st
4、ring args)DriveClass driveclass=new DriveClass();/实例化派生类myClass myclass=driveclass;/使用派生类对象实例化抽象类 myclass.ID=BH0001;/使用抽象类对象访问抽象类中的编号属性 myclass.Name=TM;/使用抽象类对象访问抽象类中的姓名属性 myclass.ShowInfo();/使用抽象类对象调用抽象类中的的抽名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 3 页 -象方法 上例中通过派生类的对象driveclass来实例化抽象类,然后使用抽象类访问抽象类中的属性及方法。上面这
5、个小例子,细心的朋友会发现,怎么抽象类和我们上一篇文章讲的接口差不多吗?那么究竟抽象类和接口存在哪些区别呢?Ok,下面就介绍下抽象类和接口的区别喽:它们的派生类只能继承一个基类,即只能继承一个抽象类,但是可以继承多个接口。抽象类中可以定义成员的实现,但接口中不可以。抽象类中包含字段、构造函数、析构函数、静态成员或常量等,接口中不可以。抽象类中的成员可以私有的(只要不是抽象的)、受保护的、内部的或受保护的内部成员,但接口中的成员必须是公共的。PS:抽象类和接口这两种类型用于完全不同的目的。抽象类主要用作对象系列的基类,共享某些主要特性,例如共同的目的和结构。接口则主要用于类,这些类在基础水平上有所不同,但仍然可以完成某些相同的任务。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 3 页 -