//抽象类不能同时是密封的
//可包括抽象成员
//不能直接实例化
//必须是其它类的基类
//抽象类可以继承抽象类
abstract class Team
{
public abstract void G();//抽象类中的抽象方法;仅含有声明没有方法体;且以;分号结束
}
class sun : Team //如果继承了抽象类的类是实体类,它必须实现抽象基类的抽象方法,即father.G
{
private string _c;
//abstract或extern表明可以不用声明方法体
public void Find(string c)
{
this._c = c;
}
//对抽象基类的抽象方法必须进行重写override方可实现其真正使用
public override void G()
{
Console.WriteLine("类sun实现了抽象基类的抽象方法G");
}
}
static void Main(string[] args)
{
//sun t1 = new Team();//不能直接创建抽象类或接口的实例
sun s1 = new sun();
s1.G();
Console.ReadKey();
}
namespace learnindexindicator
{
//抽象类不能同时是密封的
//可包括抽象成员
//不能直接实例化
//必须是其它类的基类
//抽象类可以继承抽象类
abstract class Team
{
public abstract void G();//抽象类中的抽象方法;仅含有声明没有方法体;且以;分号结束
}
//抽象类继承抽象类时,可以不用实现其父级抽象类的抽象方法
//抽象类可以包括实体方法和抽象方法
abstract class SubTeam:Team
{
public void ShutDown()
{
Console.WriteLine("抽象类中的非抽象方法");
}
}
class sun : Team //如果继承了抽象类的类是实体类,它必须实现抽象基类的抽象方法,即father.G
{
private string _c;
//abstract或extern表明可以不用声明方法体
public void Find(string c)
{
this._c = c;
}
//对抽象基类的抽象方法必须进行重写override方可实现其真正使用
public override void G()
{
Console.WriteLine("类sun实现了抽象基类的抽象方法G");
}
}
class Three : SubTeam
{
public override void G()
{
Console.WriteLine("在实体类多级继承抽象类时实现了抽象类的抽象方法G");
}
}
}
class Program
{
static void Main(string[] args)
{
//sun t1 = new Team();//不能直接创建抽象类或接口的实例
sun s1 = new sun();
s1.G();
Console.ReadKey();
Console.WriteLine("---------------------------");
Three sub1 = new Three();
sub1.G();//实体类继承抽象父类的抽象方法的重写
sub1.ShutDown();//实体类的继承BASE父类的实体方法shutdown
Console.ReadKey();
}
}
//抽象类不能同时是密封的
//可包括抽象成员
//不能直接实例化
//必须是其它类的基类
//抽象类可以继承抽象类
abstract class Team
{
public abstract void G();//抽象类中的抽象方法;仅含有声明没有方法体;且以;分号结束
}
//抽象类继承抽象类时,可以不用实现其父级抽象类的抽象方法
//抽象类可以包括实体方法和抽象方法
abstract class SubTeam:Team
{
public void ShutDown()
{
Console.WriteLine("抽象类中的非抽象方法");
}
}
class sun : Team //如果继承了抽象类的类是实体类,它必须实现抽象基类的抽象方法,即father.G
{
private string _c;
//abstract或extern表明可以不用声明方法体
public void Find(string c)
{
this._c = c;
}
//对抽象基类的抽象方法必须进行重写override方可实现其真正使用仅在继承时才可用override和sealed
//测试override和sealed的组合,如无sealed,是否在子类可重写方法
public override void G()
{
Console.WriteLine("类sun实现了抽象基类的抽象方法G");
}
}
class sunof1 : sun
{
public override void G()
{
base.G();
Console.WriteLine("类sunof1重写了sun类的G方法");
}
}
class Three : SubTeam
{
public override void G()
{
Console.WriteLine("在实体类多级继承抽象类时实现了抽象类的抽象方法G");
}
}
}
class Program
{
static void Main(string[] args)
{
//sun t1 = new Team();//不能直接创建抽象类或接口的实例
sun s1 = new sun();
s1.G();
Console.ReadKey();
Console.WriteLine("---------------------------");
Three sub1 = new Three();
sub1.G();//实体类继承抽象父类的抽象方法的重写
sub1.ShutDown();//实体类的继承BASE父类的实体方法shutdown
Console.ReadKey();
sunof1 so1 = new sunof1();
so1.G();
Console.ReadKey();
}
}
//可包括抽象成员
//不能直接实例化
//必须是其它类的基类
//抽象类可以继承抽象类
abstract class Team
{
public abstract void G();//抽象类中的抽象方法;仅含有声明没有方法体;且以;分号结束
}
class sun : Team //如果继承了抽象类的类是实体类,它必须实现抽象基类的抽象方法,即father.G
{
private string _c;
//abstract或extern表明可以不用声明方法体
public void Find(string c)
{
this._c = c;
}
//对抽象基类的抽象方法必须进行重写override方可实现其真正使用
public override void G()
{
Console.WriteLine("类sun实现了抽象基类的抽象方法G");
}
}
static void Main(string[] args)
{
//sun t1 = new Team();//不能直接创建抽象类或接口的实例
sun s1 = new sun();
s1.G();
Console.ReadKey();
}
namespace learnindexindicator
{
//抽象类不能同时是密封的
//可包括抽象成员
//不能直接实例化
//必须是其它类的基类
//抽象类可以继承抽象类
abstract class Team
{
public abstract void G();//抽象类中的抽象方法;仅含有声明没有方法体;且以;分号结束
}
//抽象类继承抽象类时,可以不用实现其父级抽象类的抽象方法
//抽象类可以包括实体方法和抽象方法
abstract class SubTeam:Team
{
public void ShutDown()
{
Console.WriteLine("抽象类中的非抽象方法");
}
}
class sun : Team //如果继承了抽象类的类是实体类,它必须实现抽象基类的抽象方法,即father.G
{
private string _c;
//abstract或extern表明可以不用声明方法体
public void Find(string c)
{
this._c = c;
}
//对抽象基类的抽象方法必须进行重写override方可实现其真正使用
public override void G()
{
Console.WriteLine("类sun实现了抽象基类的抽象方法G");
}
}
class Three : SubTeam
{
public override void G()
{
Console.WriteLine("在实体类多级继承抽象类时实现了抽象类的抽象方法G");
}
}
}
class Program
{
static void Main(string[] args)
{
//sun t1 = new Team();//不能直接创建抽象类或接口的实例
sun s1 = new sun();
s1.G();
Console.ReadKey();
Console.WriteLine("---------------------------");
Three sub1 = new Three();
sub1.G();//实体类继承抽象父类的抽象方法的重写
sub1.ShutDown();//实体类的继承BASE父类的实体方法shutdown
Console.ReadKey();
}
}
//抽象类不能同时是密封的
//可包括抽象成员
//不能直接实例化
//必须是其它类的基类
//抽象类可以继承抽象类
abstract class Team
{
public abstract void G();//抽象类中的抽象方法;仅含有声明没有方法体;且以;分号结束
}
//抽象类继承抽象类时,可以不用实现其父级抽象类的抽象方法
//抽象类可以包括实体方法和抽象方法
abstract class SubTeam:Team
{
public void ShutDown()
{
Console.WriteLine("抽象类中的非抽象方法");
}
}
class sun : Team //如果继承了抽象类的类是实体类,它必须实现抽象基类的抽象方法,即father.G
{
private string _c;
//abstract或extern表明可以不用声明方法体
public void Find(string c)
{
this._c = c;
}
//对抽象基类的抽象方法必须进行重写override方可实现其真正使用仅在继承时才可用override和sealed
//测试override和sealed的组合,如无sealed,是否在子类可重写方法
public override void G()
{
Console.WriteLine("类sun实现了抽象基类的抽象方法G");
}
}
class sunof1 : sun
{
public override void G()
{
base.G();
Console.WriteLine("类sunof1重写了sun类的G方法");
}
}
class Three : SubTeam
{
public override void G()
{
Console.WriteLine("在实体类多级继承抽象类时实现了抽象类的抽象方法G");
}
}
}
class Program
{
static void Main(string[] args)
{
//sun t1 = new Team();//不能直接创建抽象类或接口的实例
sun s1 = new sun();
s1.G();
Console.ReadKey();
Console.WriteLine("---------------------------");
Three sub1 = new Three();
sub1.G();//实体类继承抽象父类的抽象方法的重写
sub1.ShutDown();//实体类的继承BASE父类的实体方法shutdown
Console.ReadKey();
sunof1 so1 = new sunof1();
so1.G();
Console.ReadKey();
}
}
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-718052/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9240380/viewspace-718052/
本文介绍了抽象类的概念及其用法,包括抽象方法的定义与实现、类间的继承关系以及多级继承中抽象方法的重写等关键知识点。
832

被折叠的 条评论
为什么被折叠?



