zoukankan      html  css  js  c++  java
  • C# 类的继承和访问

    学习笔记------类的继承和访问:

    class MyBaseClass {
    public void PrintSun(){
    Console.WriteLine("base1111111111");
    }
    
    }
    class MyClass : MyBaseClass
    {
    new public void PrintSun()
    {
    base.PrintSun();//访问(已经隐藏的)基类成员变量和函数
    Console.WriteLine("child2222222222");
    }
    
    }
    class Program
    {
    static void Main(string[] args)
    {
    
    var mm = new MyClass();
    mm.PrintSun();
    MyBaseClass mbase = (MyBaseClass)mm;//访问(已经隐藏的)基类成员变量和函数
    mbase.PrintSun();
    Console.WriteLine();
    Console.ReadKey();
    
    }
    }

    1、所有类的基类是Object,这个很多从事一两年C#是不知道的大有人在,不是我说的绝对但是却是事实。

    2、派生类继承基类所有变量和方法

    3、派生类可以重写基类的变量值和方法体:这里我说的不是很准确,只是想表达的更好理解,比如基类有个  string  NameStr=“张三”;继承类可以对他重新赋值,如:New string  NameStr=“李四”;

    但是原来基类的变量并没有删除或者消失,只是隐藏起来了,简单点说就是不能直接调用了,必须要通过某种方式去调用。

    那怎么才能调用被隐藏了的基类的成员变量和函数呢?

    A、对于在派生类中调用:提供了base这个方式,如:base.NameStr就可以调用到已经被隐藏了的基类成员变量和函数

    B、在其他地方进行实例化调用,方法是先对派生类进行实例化:

    MyClass  my=New  MyClass();
    然后对派生类的实例对象进行强制转换:
     MyBaseClass mbase = (MyBaseClass)my;
    然后用mbase进行调用就可以实现对基类的成员变量和成员函数进行调用。
  • 相关阅读:
    system函数调用
    ubuntu设置开机默认进入界面及命令行下开启图像界面
    博客园添加目录
    [转]JavaScript自动生成博文目录导航
    博客选择: csdn博客和博客园(cnblog)
    [转]Git服务器的搭建全部功略
    Ubuntu忘记密码
    [转]android logo:内核、android开机动画
    [转]关于前置声明与C++中头文件相互包含的几点问题
    [转]while(cin>>str)输入结束符,并正确执行后续程序
  • 原文地址:https://www.cnblogs.com/myloveblogs/p/5689050.html
Copyright © 2011-2022 走看看