zoukankan      html  css  js  c++  java
  • c#基础知识第十二节

    继承和多态

    继承(继承具有传递性)

    //(父类)
    class Animal
    {
    public string Name
    {
    get;
    set;
    }
    public void shout()
    {
    Console.WriteLine("动物叫");
    }
    }
    //(子类)
    class Dog : Animal
    {
    public void printName()
    {
    Console.WriteLine("名字 :"+Name);
    }
    }
    class Program
    {
    static void Main(string[] args)
    {
    //实例化子类
    Dog d = new Dog();
    d.Name = "沙皮狗";
    d.printName();
    d.shout();
    Console.ReadKey();
    }
    }

    如果拥有父类的话,在调用自身构造方法之前会先调用父类的构造方法。

    隐藏基类(父类)方法

    class Animal //父类
    {
    //父类方法
    public void Shout()
    {
    Console.WriteLine("动物叫!");
    }
    }
    //子类
    class Dog:Animal
    {
    //子类方法
    public new void Shout() //使用new关键字来隐藏基类方法
    {
    Console.WriteLine("狗叫!");
    }
    }
    class Program
    {
    static void Main(string[] args)
    {
    Dog d = new Dog();
    d.Shout();
    Console.ReadKey();
    }
    }

    密封(sealed)不能被继承

    object类

    class program

    {
    static void Main(string[] args)
    {
    Console.WriteLine(42.ToString());
    int i = 42;
    Console.WriteLine(i.ToString());

    Console.ReadKey();

    }
    }

    多态:同一方法在不同类中(希望父类方法在子类中得到一定的改进)

    class Animal //父类
    {
    //父类方法
    public virtual  void Shout()//使用virtual关键字来修饰要重写的父类方法
    {
    Console.WriteLine("动物叫!");
    }
    }
    //子类
    class Dog:Animal
    {
    //子类方法
    public override  void Shout() //使用override关键字来修饰,重写父类方法
    {
    Console.WriteLine("狗叫!");
    }
    }

    里氏转换原则

    1.Animal an=new Dog();

    2.Aniaml an=new Dog();

      Dog dog=(Dog)an;//将父类变量an强制转换为子类类型dog

    base关键字

    专门用于在子类中访问父类的成员

  • 相关阅读:
    UVM系统验证基础知识0(Questasim搭建第一个UVM环境)
    DDR3详解(以Micron MT41J128M8 1Gb DDR3 SDRAM为例)
    正则表达式的基本用法
    Veloce2 Emulator
    Perl入门
    哪一种验证方法最好?形式验证、硬件加速还是动态仿真?
    什么是形式验证?
    穆里尼奥之皮洛斯式胜利
    穆帅:孟菲斯是计划中重要的一部分
    CentOS Netstat命令
  • 原文地址:https://www.cnblogs.com/zhang1997/p/7682474.html
Copyright © 2011-2022 走看看