zoukankan      html  css  js  c++  java
  • C#

    微软认为,接口就是一个规范,只说不做,那么就意味着,他的成员必须由子类来实现,也就意味着,在接口中的成员必须是公共的和抽象的。

    接口就是一个抽象类,通过查看源码知道的;

    实现接口的成员,并不是来重写,实现之后的接口的成员就是类的成员;

    接口的方法只能通过接口对象来调用。

    什么时候接口对象---所谓的接口对象就是,实现了接口的类的对象

    如果一个类继承自另外一个类,同时实现多个接口,那么类的继承需要先确定,也说明:如果第一个是类,那么后面的是接口;如果第一个是接口,那么后面的都是接口。

    接口作为参数,传入实现了接口的类的对象;

    使用多态的三种场合:

    1,声明父类变量,实例化子类对象,声明接口类型的变量,实例化实现了接口的类的对象;

    2.父类做为方法的返回值类型,返回子类对象,接口作为方法的返回值类型,返回实现的接口的类的对象;

    3.父类作为参数,传入子类对象,接口作为参数,传入实现了接口的类的对象。

    代码:

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 
     7 namespace 接口
     8 {
     9     /// <summary>
    10     /// 接口:定义一个统一的标准
    11     /// 声明接口,接口中,只包含成员的生命,不包含任何的代码实现。
    12     /// 接口成员总是公有的,不添加也不需要添加public,也不能声明虚方法和虚静态方法
    13     /// </summary>
    14     interface IBankAccount
    15     {
    16         //方法
    17         void PayIn(decimal amount);
    18 
    19         //方法
    20         bool WithShowMyself(decimal amount);
    21 
    22         //属性
    23         decimal Balance { get; }
    24     }
    25 
    26     //实现接口的类的相应成员必须添加public修饰
    27     public class SaveAccount : IBankAccount
    28     {
    29         //私有变量
    30         private decimal banlance;
    31 
    32         //存款
    33         public void PayIn(decimal amount)
    34         {
    35             banlance += amount;
    36         }
    37 
    38         //取款
    39         public bool WithShowMyself(decimal amount)
    40         {
    41             if (banlance >= amount)
    42             {
    43                 banlance -= amount;
    44                 return true;
    45             }
    46             else
    47             {
    48                 Console.WriteLine("余额不足!");
    49                 return false;
    50             }
    51         }
    52 
    53         //账户余额
    54         public decimal Balance
    55         {
    56             get
    57             {
    58                 return banlance;
    59             }
    60         }
    61     }
    62 
    63 
    64     class Program
    65     {
    66         static void Main(string[] args)
    67         {
    68             //引用指向SaveAccount
    69             IBankAccount ib = new SaveAccount();
    70 
    71             ib.PayIn(1000);
    72 
    73             ib.WithShowMyself(200);
    74 
    75             Console.WriteLine(ib.Balance);
    76 
    77             Console.ReadKey();
    78         }
    79     }
    80 }
  • 相关阅读:
    conan本地安装包
    Python PIL 怎么知道写入图片格式的kb大小
    怎么对C++枚举(不是类)里面的东西进行随机
    当双方Visual studio windows SDK不一样的时候的解决办法
    不小心使用vcpkg之后再使用conan,一直报链接错误
    关于obj文件的理解
    卸载VS2015之后,安装VS2017出错
    性状、生成器、闭包、OPcache【Modern PHP】
    docker容器修改hosts文件,重启失效问题解决
    微信公众号-模板消息通用接口封装
  • 原文地址:https://www.cnblogs.com/KTblog/p/4525781.html
Copyright © 2011-2022 走看看