抽象类 和 接口总结

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

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

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

比如:某一个抽象类是车: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

猜你喜欢

转载自blog.csdn.net/qq_26640897/article/details/81456596
今日推荐