`

子类与父类的关系 C#

阅读更多

 

 

 

 class test
    {
        static void Main(string[] args)
        {

            Console.WriteLine("父类对象指向父类引用:");
            Person p2 = new Person();
            p2.virFun();


            Console.WriteLine("只是创建子类对象:");
            Son1 s = new Son1();
            s.virFun();

            Console.WriteLine("父类对象指向子类引用:");
            Person p = new Son1();
            p.virFun();

            //Console.WriteLine("子类对象指向父类引用:");   //--子类对象指向父类,这样是不允许的,编译时要报错
            //Son1 p3 = new Person();
            //p3.virFun();
         
            Console.ReadLine();
        }
    }

 


    public class Person
{
//父类的构造函数
public Person()
{
Console.WriteLine("Person");
}
//父类的虚方法
public virtual void virFun()
{
Console.WriteLine("Person's Fun");
}
}
//子类代码如下:
public class Son1:Person//继承
{
//子类Son1的构造方法
public Son1()
{
Console.WriteLine("Son1");
}
//重写父类的虚方法
public override void virFun()
{
Console.WriteLine("Son's Fun");
}
}

分享到:
评论

相关推荐

    C#子类舍弃属性转换为父类UtilSubToBase.cs

    利用C#反射将子类舍弃多余的属性转换为父类,用途比较少。

    父类赋值给子类

    这里我们将深入探讨如何在 C# 中进行父类属性到子类属性的赋值,并考虑效率、灵活性和代码可维护性。 首先,让我们理解一下父类和子类的概念。在 C# 中,父类(也称为基类或超类)是定义了一组属性和方法的类,而...

    WPF继承_子类继承父类,实现跨类调用方法

    在Windows Presentation Foundation (WPF) 中,继承是面向对象编程的一个关键特性,它允许子类继承父类的属性、字段和方法,以便扩展或重写它们。标题“WPF继承_子类继承父类,实现跨类调用方法”表明我们将讨论如何...

    C#中子类调用父类的实现方法

    这是因为C#在创建子类实例时,会自动调用父类的无参构造函数(如果没有指定特定的构造函数)。 如果父类没有无参构造函数,如下面的情况: ```csharp public class Person { public Person(string name) { ...

    子类可以调用父类.pdf

    如果一个类继承一个父类,那么子类会拥有父类所规定的所以成员 子类还可以拥有父类没有的独有成员 父类可以完成的任务,子类对象也可以完成 子类可以调用父类Person p= new student(); 声明父类变量,实例化子类...

    窗体传值,或者是子类向父类传值。

    在C#中,如果一个窗体是另一个窗体的子类(继承关系),可以通过以下方法实现数据传递: - 调用父类方法:子类可以调用父类的非私有方法,将数据作为参数传递。 - 事件:在子类中触发事件,然后在父类中处理事件...

    C++/JAVA/C#子类调用父类函数情况总结

    C#与Java类似,但有些微小的差异: 1. **构造函数调用**: - **this(参数)**:类似于Java,C#也允许在子类构造函数内部通过`this(param)`调用本类的其他构造函数。 - **base(参数)**:在子类构造函数中,使用`...

    子类调用抽象父类.zip

    6. **子类属性与方法**:子类可以有自己的属性和方法,也可以调用父类方法。 7. **构造函数调用**:子类可以使用`super`调用父类构造器。 以上就是关于“子类调用抽象父类”这一主题的主要内容,理解并熟练运用这些...

    屏蔽父类成员C#程序

    总的来说,屏蔽父类成员是C#中的一种特性,它允许子类定义与父类同名的成员,但不改变父类原有的行为。然而,对于多态性而言,通常推荐使用`override`关键字来确保子类能够正确地扩展或修改父类的行为。在实际开发中...

    C#中事件的继承实例分析

    通常来说,C#中的子类无法调用父类的事件,但是可以通过在父类中创建一个方法来调用父类的事件,而子类通过调用父类的方法来触发事件。 具体实现代码如下: class parent { protected string name; public event ...

    C#中子类重写父类的方法

    在C#编程语言中,子类继承父类是一种常见的面向对象特性,它允许子类获取父类的属性和方法,并可以扩展或修改这些特性。本文将深入探讨C#中子类如何重写父类的方法,以及这种方法在实际编程中的应用。 ### 1. 继承...

    C#类的定义

    子类可以继承父类的所有非私有成员,并可以添加自己的成员或重写父类的方法。例如: ```csharp public class GraduateStudent : Student { public string ThesisTitle; public GraduateStudent(string name, int...

    c#基础例子,上课必备29个例子

    3. 基类与派生类的转换:`A`方法展示了如何将子类对象赋值给父类引用,允许调用父类中的公共方法。`B`方法说明了父类引用不能直接赋值给子类对象。`C`方法演示了向下转型(downcasting),将父类对象转换为子类对象...

    c#面向对象练习进阶

    重写则是在子类中提供与父类同名的方法,改变其具体实现;抽象方法是声明在抽象类中的,没有实现,需要子类进行实现。 此外,C# 2.0引入了一些新的面向对象特性,如匿名方法、委托(Delegate)和事件(Event)。...

    基对象引用子类实例(C# 形象说明:父母可以代表孩子做很多事情)

    在C#编程语言中,"基对象引用子类实例"是一种常见的面向对象编程特性,它体现了多态性(Polymorphism)的概念。多态性是OOP(面向对象编程)的三大基本特征之一,另外两个是封装和继承。在这个主题中,我们将深入...

    c#切换执行程序顺序,有些中级开发小伙伴还是搞不太明白在继承父类以及不同场景实例化的情况下,父类和子类的各种方法的执行顺序到底是

    当实例化子类`B`时,C#会先执行父类的构造函数,然后再执行子类的构造函数。这是因为子类继承了父类,需要确保父类的状态正确初始化。执行顺序如下: - 进入`A`类,执行构造函数`A()`。 - 进入`B`类,执行构造...

    C#基础教程C# C# C# C#

    继承允许子类继承父类的属性和方法,实现代码复用;多态则允许不同类的对象对同一消息做出不同的响应,增强了软件的灵活性。 4. **泛型**:C#的泛型允许在不指定具体类型的情况下编写代码,提高了代码的可重用性和...

    c#虚方法学习

    在C#编程语言中,虚方法是面向对象编程的一个核心概念,它允许子类重写父类的行为。本文将深入探讨虚方法的概念、用途以及如何在C#中使用它们,特别针对面向对象编程的初学者。 一、虚方法介绍 虚方法是C#中的一种...

Global site tag (gtag.js) - Google Analytics