C# 创建类和派生类的实例

标签 c# .net oop inheritance polymorphism

我在我的 C# 程序中尝试了以下代码。这只是为了学习 OOP 概念。

 class a
    {      
        public void testa()
        {
        }
    }
    class b:a
    {     
        public void testb()
        {
        }
    }

  a a1 = new b();

  b b1 = new a();

我对上述代码有以下疑问。

  1. 为什么我在第二行出现错误?
  2. a a1=new b()是什么意思;
  3. 为什么 a1.testb() 无法访问,即使 b 的构造函数已分配给 a1
  4. a a1=new a()a a1=new b() 有什么区别?

最佳答案

1) 如果你指的是这一行:

b b = new a();

这是因为每个b都是a但不是每个a都是b

2-3) a a1=new b();是什么意思 为什么 a1.testb() 无法访问,即使 b 的构造函数已分配给 a1

这意味着您创建了 b 类的对象,但将其作为 a 进行引用(您可以通过此引用来处理它,而无需仅将其转换为 a 即使是 b)

关于C# 创建类和派生类的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19784092/

相关文章:

c# - 在 .Net 中的 Excel 文档中查找最右边的单元格

c# - 我可以在 ASP.NET MVC 站点中路由 Web 服务 (ASMX) 的 URL 吗?

python - 正在定义的类型对象的类型提示

c# - 处理对频繁更改的 DLL 的依赖

c# - MediatR 不处理逆变通知

c# - MVVMCross ValueConverter Bool 到 MvxColor/Color

java - 空 .java 文件名是否有效?

PHP 属性不存在但使用时没有抛出错误

c# - TeamCity 已经为

c# - 有什么快速熟悉 C#、.NET 框架等的方法?