base关键字

转载 2016年08月30日 10:56:38
1.base其实最大的使用地方在面相对性开发的多态性上,base可以完成创建派生类实例时调用其基类构造函数或者调用基类上已被其他法重写的方法。
例如:
2.关于base调用基类构造函数
public class
A
{
public
A()

{

Console.WriteLine("Build A");

}
}
public class B:A
{

public B():base()

{

Console.WriteLine("Build B");

}

static void Main()

{

B b = new
B();

Console.ReadLine();

}
}
创建一个B的实例对象,获得结果是同时打印Build A和Build B.

3.关于base在派生类中调用基类的方法。
public class
A
{
public virtual void
Hello()

{

Console.WiriteLine("Hello");

}
}
public class B : A
{

public override void Hello()

{

base.Hello();//调用基类的方法,显示Hello

Console.WiriteLine("World");

}
}
这样如果程序调用B.Hello()获得的效果将会使Hello World.

最后补充下,根据MSDN
Library介绍来看这两个关键字都是属于[访问关键字]类型

4.关于base
base
关键字用于从派生类中访问基类的成员:
调用基类上已被其他方法重写的方法。
指定创建派生类实例时应调用的基类构造函数
基类访问只能在构造函数、实例方法或实例属性访问器中进行。

示例:
5.
在派生类中调用基类方法。

using
System;
public class BaseClass
{
protected string
_className = "BaseClass";
public virtual void
PrintName()

{
Console.WriteLine("Class Name:
{0}", _className);
}
}
class DerivedClass :
BaseClass
{
public string _className =
"DerivedClass";
public override void
PrintName()

{
Console.Write("The BaseClass
Name is {0}");

//调用基类方法

base.PrintName();

Console.WriteLine("This DerivedClass is {0}", _className);

}
}
class TestApp
{
public static void
Main()
{

DerivedClass dc = new
DerivedClass();

dc.PrintName();
}
}

6.
在派生类中调用基类构造函数。
// keywords_base2.cs
using System;
public class
BaseClass
{
int num;
public
BaseClass()

{
Console.WriteLine("in
BaseClass()");
}
public
BaseClass(int i)

{
num =
i;
Console.WriteLine("in
BaseClass(int {0})", num);
}
}
public class
DerivedClass : BaseClass
{
// 该构造器调用
BaseClass.BaseClass()
public
DerivedClass()
:
base()
{
}
//
该构造器调用 BaseClass.BaseClass(int i)
public DerivedClass(int
i)
: base(i)

{
}
static void
Main()
{

DerivedClass dc = new
DerivedClass();
DerivedClass dc1 =
new DerivedClass(1)();

Console.ReadLine();
}
}

7.注意:
从静态方法中使用 base
关键字是错误的。
base 主要用于面向对象开发的对态这方面,在示例2中有体现。

C#中的override和new关键字

问题1: 虚方法首先,看下面的代码。namespace CSharpTest { class A { public void fun() { ...
  • T_27080901
  • T_27080901
  • 2015年05月16日 21:01
  • 1889

C#:base与this关键字用法小结

1.base关键字 在博文《C#类继承中构造函数的用法小结》一文中,我们已经学习到:使用base关键字可以帮助子类显示地调用父类的构造函数。对于这点,我们可以使用前文所给的实例代码(有裁剪)来进行说明...
  • tiana0
  • tiana0
  • 2013年09月08日 11:19
  • 14724

C#中的is,as关键字

1.如:BaseItem item=sender as BaseItem;        as指将sender显示转换BaseItem类型          相当于:        BaseIt...
  • lwj0310
  • lwj0310
  • 2014年07月08日 08:43
  • 586

C#中base和this关键字

this:   用于引用类的当前实例,也包括继承而来的方法,通常可以隐藏this。 MSDN中的小结功能主要包括:     (1)限定被相似的名称隐藏的成员      (2)将对象作为参数传...
  • hy6688_
  • hy6688_
  • 2013年03月24日 16:35
  • 2996

c# base关键字的用法

这个base用法,是在定义子类的时候,如果子类必须先存在基类的成员变量,那么就用base把基类实例化。子类继承基类的成员变量以完成后续操作。base还可以用于在一个抽象类的子类里面引用抽象类的方法。这...
  • CGGUANG
  • CGGUANG
  • 2016年11月21日 18:53
  • 552

c# base关键字的用法

base其实最大的使用地方在面相对性开发的多态性上,base可以完成创建派生类实例时调用其基类构造函数或者调用基类上已被其他方法重写的方法。 例如: 2.1关于base调用基类构造函数 ...
  • lyq18235187358
  • lyq18235187358
  • 2017年08月09日 15:29
  • 64

C#中base和this关键字

C#中base和this关键字 base: 用于在派生类中实现对基类公有或者受保护成员的访问,但是只局限在构造函数、实例方法和实例属性访问器中。 MSDN中小结的具体功能包括:    ...
  • autumn20080101
  • autumn20080101
  • 2016年03月01日 14:43
  • 376

C# 参考之访问关键字:base、this

C# 参考之访问关键字:base、this 作者: 字体:[增加 减小] 类型:转载 时间:2008-03-09 由于静态成员函数存在于类一级,并且不是对象的一部分,因此没有 th...
  • Blog2015
  • Blog2015
  • 2015年08月29日 13:43
  • 431

【面向对象】访问this关键字和base关键字使用

一、总体概要 this引用类的当前实例。静态成员方法中不能使用this关键字,this关键字只能在实例构造函数、实例方法或实例访问器中使用。base关键字用于从派生类中访问基类的成员。下面学习一下...
  • kisscatforever
  • kisscatforever
  • 2015年09月05日 11:20
  • 1201

C#中base关键字的几种用法

base其实最大的使用地方在面相对性开发的多态性上,base可以完成创建派生类实例时调用其基类构造函数或者调用基类上已被其他方法重写的方法。 例如: 2.1关于base调用基类构造函数 publ...
  • u012538990
  • u012538990
  • 2017年05月10日 11:03
  • 125
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:base关键字
举报原因:
原因补充:

(最多只允许输入30个字)