【学习笔记】C# 接口

  • 使用interface关键字定义接口
  • 接口定义一组成员但不直接实现它们
  • 实现接口
    • 实现接口的任何类都必须实现其所有的成员方法
    • 接口不能直接实例化
    • 接口可以包含方法和属性声明,不能包含字段
    • 接口中所有属性和方法默认为public
    • 一个子类可以继承一个父类的同时,实现多个接口
  •   

     1 using System;
     2
     3 namespace InterfaceDemo
     4 {
     5     //食物接口
     6     public interface Food
     7     {
     8         //在接口中定义属性,属性也不能实现
     9         float price { set; get; }
    10
    11         //在接口中,定义方法
    12         //1. 不能添加访问修饰符,默认都是public
    13         //2. 在接口中的方法不能实现
    14         void Eat();
    15     }
    16     public interface B
    17     {
    18
    19     }
    20     //苹果类
    21     //Apple继承于A类,并且实现了Food接口和B接口
    22     //3. 一旦某个类实现了接口,就必须实现接口中定义的全部成员
    23     public class Apple : Food, B
    24     {
    25         public float price
    26         {
    27             get
    28             {
    29                 return 1.5f;
    30             }
    31             set
    32             {
    33                 this.price = value;
    34             }
    35         }
    36         //实现了 Food 接口中的 Eat 方法
    37         public void Eat()
    38         {
    39             Console.WriteLine("吃下苹果后,hp + 10");
    40         }
    41     }
    42
    43     public class Banana : Food, B
    44     {
    45         public float price
    46         {
    47             get
    48             {
    49                 return 3.8f;
    50             }
    51             set
    52             {
    53                 this.price = value;
    54             }
    55         }
    56         //实现了 Food 接口中的 Eat 方法
    57         public void Eat()
    58         {
    59             Console.WriteLine("吃下香蕉后,hp + 12");
    60         }
    61     }
    62     class Program
    63     {
    64         static void Main(string[] args)
    65         {
    66             Apple a = new Apple();
    67             a.Eat();
    68
    69             Console.WriteLine(a.price);
    70
    71             //多态--使用接口实现的多态
    72             Food b = new Apple();
    73             b.Eat();
    74
    75
    76             Banana ba = new Banana();
    77             ba.Eat();
    78             Console.WriteLine(ba.price);
    79             //4. 不能够直接实例化接口
    80             //Food f = new Food();
    81         }
    82     }
    83 }
时间: 2024-11-08 18:58:58

【学习笔记】C# 接口的相关文章

Java学习笔记之接口

一.接口的概念与定义 首先考虑一个简单的接口的定义: public interface Output { int MAX_LINE = 40; void out(); void getData(String msg); } 定义接口使用关键字interface 修饰符interface前面的public可以省略,如果省略,则采用默认访问控制,即只有在相同包结构的代码才可以访问此接口 接口不可以有构造方法(区别于类中的构造方法) 接口里面的所有成员,包括常量.方法等都是public访问权限,所以在

Java学习笔记_23_List接口实现类

23.List接口实现类: List接口继承了Collection接口,它是一个允许存在重复项的有序集合. 1>实现类ArrayList: ArrayList类支持可随需要而增长的动态数组.数组列表以一个原大小被创建,当超过了它的大小, 类集自动增大,当对象被删除后,数组就可以缩小. 优点:ArrayList类对于使用索引取出元素用较高的效率,他可以用索引快速定位对象. 缺点:ArrayList类对于元素的删除或插入速度较慢. 构造方法: · ArrayList(): 构造一个初始容量为10的空

Java学习笔记_21_Collection接口

21.Collection接口: 1>容器类的添加.删除: · add(Object o) :将对象添加到集合. · Remove(Object o) :删除集合中与o相匹配的对象. 2>容器中类的查询: · Size(): 返回集合中元素的个数. · isEmpty(): 判断集合中是否包含元素. · contains(Object o): 判断集合中是否包含指定元素. · iterator(): 返回集合的一个迭代器,用来访问该集合的元素. · contains(Collection c)

Java学习笔记_24_Map接口

24.Map接口: Map接口定义了存储"键(key)-值(value)映射对"的方法,Map中不能有重复的"键", Map实现类中储存的"键-值"映射对是通过键来唯一标识的,Map底层的"键"使用Set来存放的, 所以Map中的映射对的"键"对应的类必须重写hashCode()和equals()方法, 常用String作为Map的"键".  Map的添加.删除操作: · Object 

No2_1.接口继承多态_Java学习笔记_接口

接口.继承与多态 1.继承和多态是面向对象开发语言中的重要一个环节,使用得当,可以将整个程序的架构变得非常有弹性,减少代码冗余: 2.继承:复用定义好的类: 3.多态:可以动态调整对象的调用,降低对象的依存关系: 4.接口:Java中类可以实现多个接口,被用来建立类与类之间的标准: ***接口***1.接口的目的:Java语言只支持单继承,即一个类只能有一个父类.实际应用中,经常需要多继承解决问题,为解决该问题,提供接口实现类的多重继承:2.接口定义:与类的定义类似,接口的声明和接口体:[修饰符

thinkinginjava学习笔记08_接口

抽象类和抽象方法 抽象方法是指没有具体实现的方法,仅仅有方法的声明和没有方法体:使用abstract关键字定义一个抽象方法:包含抽象方法的类成为抽象类,如果一个类中包含抽象方法则必须使用abstract来限定该类为抽象类:抽象类不能实例化对象,抽象类的子类必须对所有的抽象方法提供方法定义,否则仍然是抽象类,且必须用abstract来限定: 接口 接口是一个完全抽象的类,没有提供任何具体的实现,只提供了具体的方法形式(方法名.参数列表.返回值):由于类是通过接口和外部通信,接口被用来建立类和类之间

Java学习笔记之接口和抽象类

接口(interface)1.interface创建一个接口,implements实现接口 interface jiekou{} class lie implements jiekou{}2.接口可以有属性,但必须赋值,不建议在接口定义属性(可用于定义常量)3.接口,可以定义与接口同名的方法4.接口的所有方法都没有方法体 interface jiekou{void a();} 5.接口定义的方法的权限修饰默认是public,实现接口的类重写其方法时,必须显示声明public修饰:6.实现接口的类

Java学习笔记_22_Set接口的实现类

22.Set接口的实现类: Set接口存放的元素是无序的且不包括反复元素. 1>实现类HashSet: HashSet类依据元素的哈希码进行存放,取出时也能够依据哈希码高速找到.HashSet不保存元素的加入的顺序. 样例: import java.util.HashSet; import java.util.Iterator; public class Student { public static void main(String[] args) { HashSet<String>

python学习笔记(接口自动化框架)

之前是利用python自带的unittest测试框架 这次自己设计一个 之后再一点点往里面加功能 (ps:当然这个框架真的是很简单..很简单...很简单...) excel文件格式: 1 #!/usr/bin/env python 2 # -*- coding: utf_8 -*- 3 4 import xlrd 5 import json 6 7 8 class CreateExcel: 9 def __init__(self): 10 pass 11 12 @classmethod 13 d

Groovy学习笔记-实现接口

1.单个委托方法的实现 button.addActionListener( { println 'Implement ActionListener' } as ActionListener ) 2.实现接口中的多个方法:使用映射,以每个方法的名字作为键,以方法对应的代码块作为键值,使用:分割方法名和代码块 handleFocus = [ focusGained : {msgLabel.setText("Good to see you")}, focusLost : {msgLabel.