本文是学习抽象类的以及抽象类中静态字段静态方法的知识
我写本文前对抽象类的理解
A 是为了继承的需要或者是为了多态的需要把具有类似行为的一组概念写成一个抽象类但是抽象类里面不实现任何行为仅仅是定义了一个抽象行为
B 从多态的角度来讲 应该分清楚什么时候使用抽象类什么时候使用接口(有时间吧抽象类 虚方法 以及接口 都是怎么实现多态的进行一下总结)
C 抽象类就是用来被继承的所以不能是封闭类
D 只有方法 属性可以定义抽象 其他的字段是不可以这么定义的
E 抽象的方法和属性在继承类里面实现的时候需要用override来标记的
F 抽象方法和抽象属性只能定义在抽象类里面但是非抽象类和非抽象属性是可以定义在任何类里面的抽象类和非抽象类都是可以的
学习完毕我的一点里面
类 可以分为抽象类和非抽象类 不知道这么分是不是可以
而静态类和非静态类是从另外一个角度进行区分的
下边是我学习抽象类的一点代码希望对大家有帮助
view plainprint?
using Systemusing SystemDatausing SystemText
namespace myStu { /*抽象类的 学习
*/ class programe { static void Main(string[] arg)
{ try { sonClass obj = new sonClass() objTest() objdothings() } catch (Exception err)
{ ConsoleWriteLine(errMessage)}
abstract class baseClass { //抽象类可以包含非抽象字段和方法
private int i = protected string names //不可以有抽象字段abstract string name //但是可以有抽象属性 为什么可以有抽象属性因为属性在clr里面本质就是一个字段加上一个方法
//所以抽象属性本上上就是一个一个字段加上连个抽象方法public abstract string name { get set } public void Test()
{ ConsoleWriteLine(iToString())} public abstract void dothings() } class sonClassbaseClass { public override string name //实现属性需要用代码来实现{ get { return names} set { names = value } public override void dothings() //实现抽象类的方法必须使用override关键字{ ConsoleWriteLine(继承抽象类做一些事情)}