• 抽象类和接口


    抽象类

    abstract 修饰

    抽象类是一种比较特殊的类

    特殊性:

    1 不能被实例化

    2 抽象类可包含抽象方法和属性,也可以包含非抽象的成员,但抽象方法一定存在于抽象类中

    3 抽象基类的方法的抽象成员必须在具体派生类中重写(override)

    4 抽象类满足类的单一继承和继承传递性

     1 public abstract class Animal
     2 {
     3     public void Eat()
     4     {
     5         Console.WriteLine("吃饭");
     6     }
     7     
     8     public abstract void Run();
     9 }
    10 
    11 public class Dog:Animal
    12 {
    13     public override void Run()
    14     {
    15         Console.WriteLine("");
    16     }
    17 }
    View Code

    关于抽象类为什么不能实例化

    抽象类除了不能实例化和普通的类没有区别,抽象类可以有构造方法,举例说明抽象类Person,

    类有男有女,有年龄等特征,有吃饭等方法,抽象类实例化时属性或方法没有具体的化,实例化人

    类对象不知男女,没有年龄或其他信息是未知的。抽象类更多的是用于定义公用的方法以供继承。

     

    接口Interface

    接口是一种规范,表示一种能力功能,形式I开头,able结尾

    特殊性:

    1 接口不能实例化

    2 接口中的方法默认是抽象的,默认是public的,不需要abstract修饰

    3 实现接口的具体类必须重写接口的成员,且不需要override关键字

    4 接口只能包含方法,属性,索引器和事件

    5 接口可继承多个接口,类可以实现多个接口

    interface IFlyable
    {
        string Tool { get; set; }
    }
    
    public class Bird:IFlyable
    {
        public string Tool { get; set; }
        
        public void Fly()
        {
            Console.WriteLine("鸟用{0}飞",this.Tool);
        }
    }
    View Code
  • 相关阅读:
    在胜利中窥探危机、在失败中寻觅良机
    自我剖析--为了更好的自己
    Python os模块之文件操作
    Python:XXX missing X required positional argument: 'self'
    Python scipy.sparse矩阵使用方法
    计算机视觉算法框架理解
    Python--Argparse学习感悟
    ROC曲线、AUC、Precision、Recall、F-measure理解及Python实现
    Windows版的各种Python库安装包下载地址与安装过程
    NLP常见任务
  • 原文地址:https://www.cnblogs.com/arvinzd/p/14172362.html
Copyright © 2020-2023  润新知