栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

C#中 abstract class和interface有什么区别?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#中 abstract class和interface有什么区别?

答:

abstract classabstract 声明抽象类抽象方法,一个类中有抽象方法,那么这个类就是抽象类了。所谓的抽象方法,就是不含主体(不提供实现方法),必须由继承者重写。因此,抽象类不可实例化,只能通过继承被子类重写。

 

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace ConsoleApplication1{    public abstract class Bus    {        public abstract void getName();  //抽象方法        public virtual void getTypes() //虚方法        { Console.WriteLine("bus");        }        public void getID()//一般方法,若在派生类中重写,须使用new关键字        { Console.WriteLine("沪A 00000");        }    }    public class car : Bus    {        public override void getName() //继承抽象类,重新抽象方法        { Console.WriteLine("奥迪");        }        public override void getTypes()//继承抽象类,重新虚方法        { Console.WriteLine("car");        }    }    class Program    {    static void Main(string[] args)        { car mycar = new car(); mycar.getName(); mycar.getTypes(); mycar.getID();        }        } }

输出: 奥迪 car 沪A 00000

interface声明接口,只提供一些方法规约,不提供任何实现;不能用public、abstract等修饰,无字段、常量,无构造函数

 

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace ConsoleApplication1{    public interface IBus    {        void getTypes();    }    public interface IPlane    {        void getfunc();    }    public class Car : IBus,IPlane    {     public void getTypes()        { Console.WriteLine("car");        }        public void getfunc()        { Console.WriteLine("fly");        }    }    class Program    {    static void Main(string[] args)        { Car  mycar = new Car (); mycar.getTypes(); mycar.getfunc();        }        }}

输出结果: car fly

两者区别

1.interface中不能有字段,而abstract class可以有;2.interface中不能有public等修饰符,而abstract class 可以有。3.interface 可以实现多继承

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/362988.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号