• 接口和抽象类对比


    1.接口-interface

     1.1 接口声明默认以I开头

     1.2 接口定义只声明方法,不实现具体的方法体

     1.3 接口默认公开 Public

     1.4 接口定义行为(约束行为)

        public interface Imobile //定义接口
        {
            void UserMobile();
        }
        public class ImeImobile : Imobile //继承接口
        {
            public void UserMobile() //实现接口
            {
                Console.WriteLine();
            }
        }

    2.抽象类-abstract

     2.1 定义抽象类时可以不实现具体方法体(抽象类可有属性、已实现的方法、未实现的方法)

     2.2 类中有抽象方法,这个类必须是抽象类

     2.3 类和抽象类都可以继承抽象类

     2.4 如果继承抽象类必须事项抽象类中的抽象方法

        public abstract class TestName //抽象类
        {
            public string Name { get; set; } //属性
            public abstract void Play(); //抽象方法,未实现方法体
            public void Eat() //已实现的方法
            {
                Console.WriteLine();
            }
        }
        public class TextNameChild : TestName //继承抽象类(继承抽象类必须实现抽象方法)
        {
            public override void Play() //重写Play类
            {
                Console.WriteLine();
            }
        }

    3.差异

     3.1 抽象类只能继承一个抽象类、接口可以继承多个接口

    4.实例化

    Imobile mobile = new ImeImobile();//接口的实例化 *** = new 实现了接口的类名();
    
    TestName testName = new TextNameChild();//抽象类的实例化 *** = new 实现了抽象类的类名();
  • 相关阅读:
    阅读文献的三大问题:坐不住,记不住,想不开
    C++之vector模板类
    C++之string类
    算法学习(1)枚举法求运算符
    二叉树(4)非递归法遍历二叉树
    二叉树(3):对二叉树数的操作
    Pascal's Triangle,Pascal's Triangle II
    Next Permutation
    Permutations,Permutations II,Combinations
    Majority Element,Majority Element II
  • 原文地址:https://www.cnblogs.com/JarvisNote/p/5059249.html
Copyright © 2020-2023  润新知