zoukankan      html  css  js  c++  java
  • c#学习笔记之结构体和接口

     一、结构体

    个人认为结构体就是一种简化的类,类和结构体的功能基本上差不多。但是,结构体与类在语法以及使用上也有一定的区别。

    1、结构体是值类型(value types),而类是引用类型(reference types)

    2、不像类一样,结构体可以不使用new来实例化一个对象。

    3、结构体能声明构造函数,但是必须传入参数。

    4、结构体不能从另一个结构体或类继承。

    结构体的声明:         

    public struct man

    {

    methods;

    }

    二、接口(interface)

    C#中只允许单继承,也就是一个类只能继承于,只能有一个父类。而接口就可以解决这个问题。一个类能继承多个接口。

    声明一个接口:

     public interface IStorable
    {
        void Read( );
        void Write(object);
    }

    public interface IStory

    {

        void writable();

        void listen();

    }

    使用一个接口:

    public class qwer: IStorable , IStory

    {

        public void Read(){...}

        public void Write() {...}

        public void writable(){...}

        public void listen() {...}

    }

    类qwer 继承了两个接口 IStorable和IStory,并为每个接口中的方法生命了具体的实现。需要注意的是:接口中只包含了方法的声明,而方法的具体实现需要在继承他的类中具体实现。否则,编译器会报错。另外,接口中的方法的声明不能有修饰符,也就是access modifier。

    2、当继承的两个或多个接口中有名字相同的方法时,可以有接口的显示实现,和隐式实现。

    eg:

    interface IStorable
     {
           void Read();
           void Write();
     }

    interface ITalk{
            void Talk();
            void Read();
     }

    IStorable和ITalk接口中都包含Read()方法,在继承他们的类中,要分别实现他们的功能。

     public class Document : IStorable, ITalk
     {
        public Document(string s)
         {…; }
         // Make read virtual
         public virtual void Read() 
         {…; }// IStorable的Read方法,是隐式实现。
         public void Write()
         {…; }
         void ITalk.Read()
         { …; }//ITalk 的Read()方法,是显示实现
         public void Talk()
         { …; }
    }

  • 相关阅读:
    java操作Redis
    Redis安装和基本操作
    IDEA使用教程+JRebel破解
    java环境配置
    qtp10安装步骤(比较完整)
    c++第一章1.6
    软件测试第二章作业
    c++作业22题
    c++第二周阶段小测2
    oracle12c数据库第一周小测验
  • 原文地址:https://www.cnblogs.com/zyqBlog/p/4397747.html
Copyright © 2011-2022 走看看