using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Test
{
//抽象类不能是密封的或静态的
//不能初始化的类被叫做抽象类。抽象类只能被继承。不能被实例化。抽象类中可以包含非抽象方法。这个方法可以由该抽象类的子类对象来调用。
abstract class A //A是一个抽象类
{
public abstract void Method(); //抽象类可以包含抽象方法。
public void Sum(int a, int b) //抽象类可以包含非抽象的方法。
{
Console.WriteLine(a + b);
Console.WriteLine("我的名字叫{0},今年{1}岁",Name,Age);
}
public abstract string Name { get; set; } //抽象类可以包含抽象属性
public int Age { get; set; } //抽象类可以包含非抽象的属性
}
class B :A
{
public override void Method() //实现“抽象父类”的抽象方法。注意:实现的时候需要加override关键字
{
Console.WriteLine("实现父类的抽象方法");
}
public override string Name //实现“抽象父类”的抽象属性
{
get;
set;
}
}
/*
class C
{
//含有抽象方法的类一定是抽象类,也一定要加abstract类修饰符,而这里的C类并不是抽象类。所以下面定义的抽象方法报错
public abstract string Myabstarct(); //错误 1 “Test.C.Myabstarct()”是抽象的,但它包含在非抽象类“Test.C”中
}
*/
class InheritanceTest1
{
static void Main(string[] args)
{
// A a = new A(); //错误 ,抽象类不能被实例化
B b = new B();
b.Name = "燕子李三";
b.Age = 25;
b.Sum(5, 6); //抽象类的非抽象方法只能被子类的对象来调用。
Console.ReadKey();
}
}
}
原文:http://blog.csdn.net/fanbin168/article/details/39396213