虚方法 Base 什么意思,怎么用?
虚方法是什么意思,里面的Base是调用被实现方法的的吗?
今天突然有个做java的同时突然问了这么一个问题,当时我也无语不知道怎么回答?然后我就查了下资料
虚方法:
对于非虚的方法,无论被其所在类的实例调用,还是被这个类的派生类的实例调用,方法的执行方式不变。而对于虚方法,它的执行方式可以被派生类改变,这种改变是通过方法的重载来实现的。
Base:
base 关键字用于从派生类中访问基类的成员:
调用基类上已被其他方法重写的方法。
-
指定创建派生类实例时应调用的基类构造函数。
基类访问只能在构造函数、实例方法或实例属性访问器中进行。
从静态方法中使用 base 关键字是错误的。
所访问的基类是类声明中指定的基类。 例如,如果指定 class ClassB : ClassA,则无论 ClassA 的基类如何,从 ClassB 上访问 ClassA 的成员。
namespace TestBase
{
public class BaseClass
{
int num;
public BaseClass()
{
Console.WriteLine("in BaseClass()");
}
public BaseClass(int i)
{
num = i;
Console.WriteLine("in BaseClass(int i)");
}
public int GetNum()
{
return num;
}
}
public class DerivedClass : BaseClass
{
// 调用BseeCalss的 BaseClass()方法
public DerivedClass()
: base()
{
}
// 调用BseeCalss的 BaseClass(int i)方法
public DerivedClass(int i)
: base(i)
{
}
static void Main()
{
DerivedClass md = new DerivedClass();
DerivedClass md1 = new DerivedClass(1);
Console.ReadLine();
}
}
}
{
public class BaseClass
{
int num;
public BaseClass()
{
Console.WriteLine("in BaseClass()");
}
public BaseClass(int i)
{
num = i;
Console.WriteLine("in BaseClass(int i)");
}
public int GetNum()
{
return num;
}
}
public class DerivedClass : BaseClass
{
// 调用BseeCalss的 BaseClass()方法
public DerivedClass()
: base()
{
}
// 调用BseeCalss的 BaseClass(int i)方法
public DerivedClass(int i)
: base(i)
{
}
static void Main()
{
DerivedClass md = new DerivedClass();
DerivedClass md1 = new DerivedClass(1);
Console.ReadLine();
}
}
}
这个是 简单的实现,下次就可以 让他看我博客了
遇见了就不要错过