base关键字
来源:互联网 发布:手机淘宝货到付款流程 编辑:程序博客网 时间:2024/05/17 03:16
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中有体现。
例如:
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中有体现。
0 0
- base 关键字
- base关键字
- base关键字
- base关键字
- base 关键字(类)
- 关键字base和this
- Base关键字的使用
- Base关键字的使用
- 关键字 - this 和base
- 关键字 this和base
- this, base关键字
- C#base关键字
- base关键字的用法
- C# base 关键字
- base与this关键字
- 上课第一天base关键字
- C++为什么没有base关键字
- c# base关键字的用法
- sql loop
- c# 文件读与写
- js与oc交互以及cookie设置 UIWebView与WKWebview兼容
- vim 中OmniCppComplete的安装和使用
- Spark 2.0 + kafka 0.10 fullstack 实战小记(1)
- base关键字
- 5-29 修理牧场 (25分)
- 苹果iOS开发深入浅出Cocoa之类与对象
- GIT 简介 --集中式分布式
- 分布式消息系统Kafka初步
- P标签莫名有了margin-top值的原因
- I/O复用------select
- 计算机系统概论要点记录--2个重要理念及7层转换
- Mongodb的数据类型