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进行调用就可以实现对基类的成员变量和成员函数进行调用。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】博客园携手 AI 驱动开发工具商 Chat2DB 推出联合终身会员
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 对象分配(Alloc)底层原理浅谈
· 聊一聊 C#异步 任务延续的三种底层玩法
· 敏捷开发:如何高效开每日站会
· 为什么 .NET8线程池 容易引发线程饥饿
· golang自带的死锁检测并非银弹
· 一个适用于 .NET 的开源整洁架构项目模板
· API 风格选对了,文档写好了,项目就成功了一半!
· 【开源】C#上位机必备高效数据转换助手
· .NET 9.0 使用 Vulkan API 编写跨平台图形应用
· MyBatis中的 10 个宝藏技巧!