5 在C#中如何调用基类构造器

//基类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MVATwentyQuestions
{
    class Test
    {
        public string _name = "";

        public Test(string name)
        {
            _name = name;
        }

        public virtual void ConvertToUpper()
        {
            _name = _name.ToUpper();
        }
    }
}

//子类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MVATwentyQuestions
{
    class InheritTest : Test
    {
        //base("NewName");	//错误的调用,所以注释

		//继承基类的构造器
		public InheritTest(string name) : base(name)
        {

        }
		//继承基类的构造器,传入该构造器的参数为一个值的方法
        public InheritTest(string name) : base(ModifyBase(name))
        {

        }

        private static string ModifyBase(string newName)
        {
            return newName.ToUpper();
        }
    }
}

//主方法
static void Main(string[] args)
{
    Console.WriteLine();
    Test nTest = new Test("Base");
    Console.WriteLine(nTest._name);

    InheritTest iTest = new InheritTest("NewName");
    Console.WriteLine(iTest._name);
}

继承基类的构造器

结果:

Base

NewName

继承基类的构造器,传入该构造器的参数为一个值的方法

结果:

Base

NEWNAME

5 在C#中如何调用基类构造器

时间: 2024-10-14 10:49:11

5 在C#中如何调用基类构造器的相关文章

关于Java中基类构造器的调用问题

在<Java编程思想>第7章复用类中有这样一段话,值得深思.当子类继承了父类时,就涉及到了基类和导出类(子类)这两个类.从外部来看,导出类就像是一个与基类具有相同接口的新类,或许还会有一些额外的方法和域.但继承并不只是复制基类的接口.当创建一个导出类对象时,该对象包含了一个基类的子对象,这个子对象与你用基类直接创建的对象是一样的,二者区别在于,后者来自于外部,而基类的子对象是被包裹在导出类对象内部. 这就引发出了一个很重要的问题,对基类子对象的正确初始化也是至关重要的(我们可能在子类的使用基类

C#中派生类调用基类构造函数用法分析

这里的默认构造函数是指在没有编写构造函数的情况下系统默认的无参构造函数 1.当基类中没有自己编写构造函数时,派生类默认的调用基类的默认构造函数例如: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 public class MyBaseClass { } public class MyDerivedClass : MyBaseClass {   public MyDerivedClass()   {    Console.WriteLine("我是子

关于C#中派生类调用基类构造函数的理解

(1)当基类中没有自己编写的构造函数时,派生类默认条用基类的构造函数 (2)当基类中有自己编写的构造函数时,要在基类中添加无参的构造函数 Java代码   public class MyBaseClass { public MyBaseClass() { } public MyBaseClass(int i) { Console.WriteLine("我是基类带一个参数的构造函数"); } } public class MyDerivedClass : MyBaseClass { pu

转 关于C#中派生类调用基类构造函数的理解

关于C#中派生类调用基类构造函数的理解 .c#class       本文中的默认构造函数是指在没有编写构造函数的情况下系统默认的无参构造函数 1.  当基类中没有自己编写构造函数时,派生类默认的调用基类的默认构造函数 Ex: public class MyBaseClass    {    } public class MyDerivedClass : MyBaseClass    {        public MyDerivedClass()        {            Con

【转载】 C++多继承中重写不同基类中相同原型的虚函数

本篇随笔为转载,原文地址:C++多继承中重写不同基类中相同原型的虚函数. 在C++多继承体系当中,在派生类中可以重写不同基类中的虚函数.下面就是一个例子: class CBaseA { public: virtual void TestA(); }; class CBaseB { public: virtual void TestB(); }; class CDerived : public CBaseA, public CBaseB { public: virtual void TestA()

C++虚函数的陷阱--派生类对象的基类函数调用基类虚函数出错

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">最近写程序的时候发现,派生类对象的基类函数如果调用基类虚函数,则它将调用的是派生类的对应函数,而不是我想调用的基类的对应函数.</span> 下面用一个例子来说明: //基类 class Base { public: void funA(); virtual void fun

c++调用基类的构造函数(模板类)

代码如下 #include <stdlib.h> #include <stdio.h> #include <iostream> using namespace std; template<class T> class Base { public: Base(T name); virtual void toString(); protected: T id; }; template<class T> Base<T>::Base(T n)

C++调用基类的构造函数

基类的代码是 class base { public: base(int id); base(){}; virtual void toString(); protected: int id; }; base::base(int n) { printf("base constructor!\n"); id = n; } void base::toString() { cout<<"my id is "<<id<<endl; } 派生

jsp中怎么调用java类中的方法

在jsp页面中先要,引入java类 例如: <%@page import="javabean.DbConn"%><!-- 引入包中的"类" --> <!--在用到的地方,直接对类实例化--> <% DbConn  DB=new  DbConn(); %> <!--然后就可以直接调用类中的方法--> <% Connection con=DB.conn(); %> jsp中怎么调用java类中的方法