• C#特性(一): 类


    1、使用class 关键字可以声明类

    public class MyClass
    {
      //可在内部申明一些字段、方法或属性
    }

     

    2、类(Class) 是引用类型,默认为null,可用new创建

     MyClass myClass1; //默认是 null
     MyClass myClass2 = new MyClass(); //可用 new 创建一个对象
     MyClass myClass3 = myClass2; //也可直接将已创建的对象,直接赋值到当前对象
    

    3、类可以继承,被继承的类称为基类(或父类),当前类称为子类(或派生类),通过在派生类后加 冒号 : 和 基类名称实现

    /// <summary>
    /// NextClass为基类MyClass的派生类
    /// </summary>
    public class NextClass : MyClass
    {
      //NextClass 可以继承使用MyClass 中的字段、方法和属性
      //也可以在NextClass内部创建新的字段、方法和属性
    }
    

    注意:被 sealed 修饰的类,不能用于继承 

    4、类可以申明为 abstract (抽象类)抽象类包含抽象方法,抽象方法包含签名定义但不包含实现。 抽象类不能实例化。 只能通过可实现抽象方法的派生类来使用该类。

    /// <summary>
    /// 抽象类 - Animal
    /// </summary>
    public abstract class Animal
    {
    	/// <summary>
    	/// 申明一个抽象方法,不需要具体实现内容
    	/// </summary>
    	public abstract void ShowName();
    
    	/// <summary>
    	/// 申明一个虚方法,需要具体实现,可以在派生类中重写
    	/// </summary>
    	public virtual void ShowFood()
    	{
    		Console.WriteLine("this is my food");
    	}
    }
    

      

    /// <summary>
    /// 派生类 - Dog
    /// </summary>
    public class Dog : Animal
    {
    	/// <summary>
    	/// 在派生类中实现方法内容
    	/// </summary>
    	public override void ShowName()
    	{
    		Console.WriteLine("this is a dog");
    	}
    
    	/// <summary>
    	/// 在派生类帐重载方法
    	/// </summary>
    	public override void ShowFood()
    	{
    		base.ShowFood(); //可以通过调用base保留基类的处理
    		Console.WriteLine("I eat meat");
    	}
    }
    

    5、类可以通过修饰符 partial 进行拆分

    //第一部分,申明一个ShowName的方法
    public partial class Monkey
    {
    	public void ShowName()
    	{
    		Console.WriteLine("this is a monkey");
    	}
    }
    //第二部分,申明一个ShowFood的方法
    public partial class Monkey
    {
    	public void ShowFood()
    	{
    		Console.WriteLine("I eat banana");
    	}
    }
    //实际使用的时候,两个方法都可以进行调用
    Monkey monkey = new Monkey();
    monkey.ShowName(); 
    monkey.ShowFood();
    
  • 相关阅读:
    bzoj 4010: [HNOI2015]菜肴制作
    bzoj4827: [Hnoi2017]礼物
    bzoj3160: 万径人踪灭
    bzoj4503: 两个串
    bzoj2648: SJY摆棋子
    bzoj2780: [Spoj]8093 Sevenk Love Oimaster
    bzoj3926: [Zjoi2015]诸神眷顾的幻想乡
    MySQL:记录的增删改查、单表查询、约束条件、多表查询、连表、子查询、pymysql模块、MySQL内置功能
    MySQL数据库:SQL语句基础、库操作、表操作、数据类型、约束条件、表之间的关系
    网络编程进阶:并发编程之协程、IO模型
  • 原文地址:https://www.cnblogs.com/aisa-thanatos/p/14775003.html
Copyright © 2020-2023  润新知