抽象类 和 接口总结

抽象类和接口本质的区别:

首先要明确,接口不是类,所以也不是抽象类。类是属性和方法容器,但是这些属性和方法没有任何区别的堆积在一起,当开发人员要寻找某个方法时,将很不方便,这个时候,接口出现了,接口的出现就是为了解决这个问题。接口将类的内部属性和方法进行分类,定义不同功能组的属性和方法。

抽象类体现的是总体上的协同,接口的意义就是公共行为的载体,所以他的成员都是隐式公有的,不能加上修饰符。。

比如:某一个抽象类是车:abstruct car,一个抽象类是火车  abstruct trans.

继承和间接继承car的类都拥有car的一个特性,这些特性也是带有abstract的属性,方法,字段等的实现;不带的是可选项;

但是car 和 trans 都拥有一些共同的功能,比如xxx啦,xxx啦。

 

接下来一段代码演示他们的其他区别项:

    interface Inter
    {
        void func();//必须实现
        void func2();//必选实现

    }
    public abstract class classA
    {
        public abstract void classAfunc4();//必须实现
        public abstract void func();//必须实现

        public virtual void func3() { }//可选实现
    }

    public abstract class classB:classA
    {
        public abstract void classBfunc();//必须实现
    }

    //继承了classB不只需要实现classB的内容,还需实现classA的;
    class Program : classB,Inter
    {
        void Inter.func() { }//在与其他类同名时,加上前缀

        public override void func() { }

        public override void classBfunc() { }

        public override void classAfunc4() { }

        public void func2(){}

        static void Main(string[] args)
        {
            
        }
    }

其他更细致的区别见其他的文章:

https://www.cnblogs.com/chunhui212/p/5892273.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值