今天特然有个疑问,抽象类(abstract class)能继承实体类么?抽象类中的方法、属性能实例化么?网上找还不如自己写代码
Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 抽象类
{
class Program
{
static void Main(string[] args)
{
hou huhu = new hou();
string danwei="danwei";
huhu.name = danwei;
huhu.abs(danwei);
huhu.text();
Console.WriteLine("我的名字:{0}", huhu.name);
Console.ReadKey();
}
}
public class Class1
{
public void tx(string dom)
{
Console.WriteLine("这是Class1中的{0}",dom);
}
}
/// <summary>
/// 抽象类继承实体类
/// </summary>
public abstract class abstracta : Class1
{
private string _name;
protected string _age;
public string name //实例化的属性;
{
get { return _name; }
set { _name = value; }
}
public abstract string age { get; }//抽象的属性
public abstract void abs(string dom);//抽象类中的抽象方法不能实例化
public void text()//抽象类中的方法实例化
{
Console.WriteLine("abstracta.text");
}
}
/// <summary>
/// 抽象类的子类调用class1 中的方法,可以实现
/// </summary>
public class hou : abstracta
{
public override string age
{
get { return _age; }
}
public override void abs(string dom)
{
tx(dom);
Console.WriteLine("这是hou中的{0}", dom);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 抽象类
{
class Program
{
static void Main(string[] args)
{
hou huhu = new hou();
string danwei="danwei";
huhu.name = danwei;
huhu.abs(danwei);
huhu.text();
Console.WriteLine("我的名字:{0}", huhu.name);
Console.ReadKey();
}
}
public class Class1
{
public void tx(string dom)
{
Console.WriteLine("这是Class1中的{0}",dom);
}
}
/// <summary>
/// 抽象类继承实体类
/// </summary>
public abstract class abstracta : Class1
{
private string _name;
protected string _age;
public string name //实例化的属性;
{
get { return _name; }
set { _name = value; }
}
public abstract string age { get; }//抽象的属性
public abstract void abs(string dom);//抽象类中的抽象方法不能实例化
public void text()//抽象类中的方法实例化
{
Console.WriteLine("abstracta.text");
}
}
/// <summary>
/// 抽象类的子类调用class1 中的方法,可以实现
/// </summary>
public class hou : abstracta
{
public override string age
{
get { return _age; }
}
public override void abs(string dom)
{
tx(dom);
Console.WriteLine("这是hou中的{0}", dom);
}
}
}
输出:
这样就看出来了。抽象类可以继承实体类,抽象类中的方法。属性都能实例化
也可以先在抽象类中抽象(abstract)再在派生类中重写(override)