Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我为什么要继承?_C#_Oop - Fatal编程技术网

C# 我为什么要继承?

C# 我为什么要继承?,c#,oop,C#,Oop,对不起,如果这是一个愚蠢的问题,但我非常困惑 namespace Test { public class Class1 { public string property1 { get; set; } public void method1() { } } public class Class2 : Class1 { public void method2() {

对不起,如果这是一个愚蠢的问题,但我非常困惑

namespace Test
{
    public class Class1
    {
        public string property1 { get; set; }
        public void method1()
        {

        }
    }

    public class Class2 : Class1
    {
       public void method2()
       {
           property1 = "set from  Class2";
           method1();
       }

    }

    public class Class3 
    {
        Class1 objClass1 = new Class1();
        public void method3()
        {
            objClass1.property1 = "set from  Class3";
            objClass1.method1();
        }

    }
}
如果我可以使用Class1的对象从Class3访问Class1的所有公共方法,
继承的优点是什么(如在类2中所做的)

在OOPs中,继承的概念提供了 可重用性。这意味着我们可以添加其他功能 在不修改现有类的情况下将其复制到现有类。 这可以通过从现有类派生新类来实现 一个。新类将结合两个方面的功能 课程。

  • 一旦在超类(基类)中定义了行为(方法)或属性,所有子类(派生类)就会自动继承该行为或属性

  • 通过继承提高了代码的可重用性

  • 继承提供了一个清晰的模型结构,该结构易于理解,使用继承时没有太多的复杂性,类以分层树结构组合在一起,代码易于管理并划分为父类和子类


继承的优点是class2展示了class1的所有属性和方法。
您可以使用class2的对象访问class1的方法。

您要求的是计算机科学类。继承或关联取决于您的使用场景。半认真的:如果您已经展示了。。。您无法真正更改
Class1
的行为,因为它没有虚方法,并且您已经用完了C#中唯一的基类可能性。。。在这种情况下,公共接口可能工作得更好。