对关键字abstract、new、virtual、override、sealed的温习笔记
2010-08-12 09:52
441 查看
代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
/*实例化派生类对象*/
pr p = new pr();
/*调用重写的虚函数*/
Console.Write(p.show()+"\r\n");
Console.Write(p.get()+"\r\n");
Console.Write(p.set());
Console.ReadLine();
}
}
/*定义抽象类*/
abstract class pro
{
/*定义虚函数方法*/
public virtual string show()
{
return "123";
}
/*定义抽象方法*/
public abstract string get();
public string set()
{
return "145";
}
}
/*定义派生类*/
class pr : pro
{
/*重写虚函数方法*/
public override string show()
{
return "456";
}
/*重写抽象方法*/
public override string get()
{
return "789";
}
/*隐藏基类方法*/
public new string set()
{
return "0";
}
}
}
下面是相应的运行结果
学习总结:
1.abstract(抽象类)可以被单继承,但不可以被实例化,抽象类内部可以定义虚函数,抽象函数等,函数可以给出定义,可以没有被实现,也可以实现;在派生类中,必须实现抽象类中没有被实现的方法
2.new 作用是隐藏基类中同名的方法,可以在派生类中不加上,但编译时会给出警告
3.virtual(虚方法),override(重写),是联合起来使用的,override只能对抽象方法和虚方法进行重写
4.sealed(封闭方法、类的标志),封闭类及封闭方法不可以被重写,不可以被继承
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
/*实例化派生类对象*/
pr p = new pr();
/*调用重写的虚函数*/
Console.Write(p.show()+"\r\n");
Console.Write(p.get()+"\r\n");
Console.Write(p.set());
Console.ReadLine();
}
}
/*定义抽象类*/
abstract class pro
{
/*定义虚函数方法*/
public virtual string show()
{
return "123";
}
/*定义抽象方法*/
public abstract string get();
public string set()
{
return "145";
}
}
/*定义派生类*/
class pr : pro
{
/*重写虚函数方法*/
public override string show()
{
return "456";
}
/*重写抽象方法*/
public override string get()
{
return "789";
}
/*隐藏基类方法*/
public new string set()
{
return "0";
}
}
}
下面是相应的运行结果
学习总结:
1.abstract(抽象类)可以被单继承,但不可以被实例化,抽象类内部可以定义虚函数,抽象函数等,函数可以给出定义,可以没有被实现,也可以实现;在派生类中,必须实现抽象类中没有被实现的方法
2.new 作用是隐藏基类中同名的方法,可以在派生类中不加上,但编译时会给出警告
3.virtual(虚方法),override(重写),是联合起来使用的,override只能对抽象方法和虚方法进行重写
4.sealed(封闭方法、类的标志),封闭类及封闭方法不可以被重写,不可以被继承
相关文章推荐
- 转:C#继承之base,virtual,override,abstract,new,sealed关键字
- sealed,new,virtual,abstract与override关键字的区别?
- new、abstract、virtual、override,sealed关键字区别和使用代码示例
- C#继承之base,virtual,override,abstract,new,sealed关键字
- new、abstract、virtual、override,sealed关键字区别和使用代码示例
- c#的new、abstract、virtual、override,sealed关键字区别
- new、abstract、virtual、override,sealed关键字区别和使用代码示例
- new、abstract、virtual、override,sealed关键字区别和使用代码示例
- C#的主要 关键字 new、sealed、partial、interface、virtual、abstract、this、base、override、return、break、continue...
- C#多态;父类引用指向子类对象;new和override的区别;new、abstract、virtual、override,sealed关键字区别和使用代码示例;c#类的初始化顺序
- C#继承之base,virtual,override,abstract,new,sealed关键字
- C# 关键字 abstract, virtual, override, sealed, new
- sealed,new,virtual,abstract与override关键字的区别?
- sealed、new、virtual、abstract与override 总结
- new、abstract、virtual、override关键字的使用
- c#中abstract、override、new、virtual、sealed使用和示例
- c#中abstract、override、new、virtual、sealed使用和示例
- C#关键字abstract virtual interface new override
- Sealed,new,virtual,abstract与override的区别
- c#中abstract、override、new、virtual、sealed使用和示例