• C#类和接口的定义


    C#中的类定义
    C#使用class关键字来定义类:
    class MyClass
    {
       // Class members.
    }
    默认情况下,类声明为内部的,即只有当前工程中的代码才能访问
    也可以用internal关键字显式声明:
    internal class MyClass
    {
       // Class members.
    }
    可以指定类是公共的,即可以由其他工程中的代码来访问
    要用public关键字声明:
    public class MyClass
    {
       // Class members.
    }
    还可以指定类是
    抽象类:不能实例化,只能继承,可以有抽象成员,使用关键字abstract
    密封类:不能继承,使用关键字sealed
    声明抽象类:
    public abstract class MyClass
    {
       // Class members, may be abstract.
    }
    抽象类可以是public的,也可以是internal的
    声明密封类:
    public sealed class MyClass
    {
       // Class members.
    }
    抽象类可以是public的,也可以是internal的
    可以在类定义中指定继承,方式是类名后加冒号再加基类名:
    public class MyClass : MyBase
    {
       // Class members.
    }
    注意:在C#中只能有一个基类,如果继承了个抽象类,就必须执行所继承的所有抽象成员(除非派生类也是抽象的)
    编译器不允许派生类的可访问性比其基类更高
    即内部类可以继承于一个公共类,但公共类不能继承于一个内部类
    如果没有指定基类,那么被定义的类继承自System.Object
    还可以在冒号后面指定支持的接口
    如果指定了基类,冒号后面跟着基类名,再接着一个或多个指定的接口,之间用逗号分割
    例如:
    给MyClass指定一个接口:
    public class MyClass : IMyInterface
    {
       // Class members.
    }
    给MyClass指定基类和接口:
    public class MyClass : MyBase, IMyInterface
    {
       // Class members.
    }
    指定多个接口:
    public class MyClass : MyBase, IMyInterface, IMySecondInterface
    {
       // Class members.
    }
    访问修饰符组合:
    修饰符    含义
    none or internal  类只能在当前工程中访问
    public    类可以在任何地方访问
    abstract or internal abstract 类只能在当前工程中访问,不能实例化,只能继承
    public abstract   类可以在任何地方访问,不能实例化,只能继承
    sealed or internal sealed 类只能在当前工程中访问,不能派生,只能实例化
    public sealed   类可以在任何地方访问,不能派生,只能实例化
    接口的定义
    与类的声明方式类似,使用interface关键字:
    interface IMyInterface
    {
       // Interface members.
    }
    修饰符关键字public和internal的使用方式相同:
    public interface IMyInterface
    {
       // Interface members.
    }
    关键字abstract和sealed不能在接口中使用
    因为接口不包含执行代码,不能直接实例化,而且必须可以继承
    接口继承跟类相似,不过可以使用多个基接口:
    public interface IMyInterface : IMyBaseInterface, IMyBaseInterface2
    {
       // Interface members.
    }
    接口不是类,不从System.Object继承
    由于多态性使System.Object的成员可以使用这些接口
    System.Object
    公共构造函数
    Object  初始化 Object 类的新实例。
    公共方法
    Equals  已重载。 确定两个 Object 实例是否相等。  
    GetHashCode 用作特定类型的哈希函数。
    GetType  获取当前实例的 Type。  
    ReferenceEquals 确定指定的 Object 实例是否是相同的实例。  
    ToString 返回表示当前 Object 的 String。 
    受保护的方法 
    Finalize 析构函数
    MemberwiseClone 创建当前 Object 的浅表副本。
  • 相关阅读:
    JS模块化规范CMD之SeaJS
    JavaScript中判断变量类型最简洁的实现方法以及自动类型转换(#################################)
    Flex 弹性布局(****************************************************)
    使用jqMobi开发app基础:弹出内容的设计
    UVA 12232
    MVC5 Entity Framework学习之Entity Framework高级功能
    员工对什么不惬意
    有关Oracle cvu和cvuqdisk
    从Android Handler内部类到WeakReference的知识关联
    把Storyboard减轻的方法
  • 原文地址:https://www.cnblogs.com/top5/p/1987273.html
Copyright © 2020-2023  润新知