zoukankan      html  css  js  c++  java
  • 总结

    1、传递值类型参数

       值类型变量直接包含其数据,这与引用类型变量不同,后者包含对其数据的引用。因此,向方法传递值类型变量意味着向方法传递变量的一个副本。方法内发生的对参数的更改对该变量中存储的原始数据无任何影响。如果希望所调用的方法更改参数的值,必须使用 ref 或 out 关键字通过引用传递该参数。

    2、传递引用类型参数

      引用类型的变量不直接包含其数据;它包含的是对其数据的引用。当通过值传递引用类型的参数时,有可能更改引用所指向的数据,如某类成员的值。但是无法更改引用本身的值;也就是说,不能使用相同的引用为新类分配内存并使之在块外保持。若要这样做,应使用 ref 或 out 关键字传递参数。

    作用:子类可以对父类中的虚方法进行重写,虚方法是多态特性的一种体现

    3虚方法

    C#中的虚方法使用virtual关键字定义

    public virtual void eat();

    override关键字作用是对父类的virtual方法进行重写

    public override void eat();

    代码举例:

    复制代码
    using System;
    using System.Collections;
    
    public class Animal
    {
        public Animal() { }
        public virtual void eat()
        {
    
        }
    }
    
    public class dog:Animal
    {
        public override void eat()
        {
            //如果父类的虚方法中有我们需要的数据,可以在子类的覆盖方法中调用它:
            //base.eat();
            Console.WriteLine("狗吃骨头");
        }
    }
    
    public class cat:Animal
    {
        public override void eat()
        {
            Console.WriteLine("猫吃鱼");
        }
    }
    
    public class panda:Animal
    {
        public override void eat()
        {
            Console.WriteLine("熊猫吃竹子");
        }
    }
    
    public class MainFun
    {
        static void Main()
        {
            Animal[] anim = new Animal[3];
            anim[0] = new dog();
            anim[1] = new cat();
            anim[2] = new panda();
            anim[0].eat();
            anim[1].eat();
            anim[2].eat();
        }
    }


    复制代码
     
     
     
     
  • 相关阅读:
    CF575A Fibonotci [线段树+矩阵快速幂]
    P3768 简单的数学题 [杜教筛,莫比乌斯反演]
    2-SAT 学习笔记
    CF776D The Door Problem [2sat]
    KD-Tree 学习笔记
    Mybatis入门笔记(2)——基于代理Dao实现CRUD
    Mybatis入门笔记(1)——基于原始dao实现CRUD
    mybatis入门看这一篇就够了
    使用JDBC程序的问题总结
    关于递归你知道多少?
  • 原文地址:https://www.cnblogs.com/haonangao/p/4827609.html
Copyright © 2011-2022 走看看