抽象方法抽象类 静态类静态方法静态成员

一 抽象类和抽象方法

用abstract修饰的方法称为抽象方法

含有抽象方法的类必须定义为抽象类

使用场景: 为了描述抽象的概念,不予具体的事物相关联

只是当做派生类的基类来使用

抽象的特征:

抽象方法只做声明,不能包含具体实现

抽象方法旨在被继承之后使用,所以不能用

private来修饰

2,抽象类不能被直接实例化(不能用new创建)

3,抽象类可以没有抽象成员,但是抽象成员

只能在抽象类中

4,如果抽象类的子类不是抽象类,那么必须要实现

该抽象类中的所有的抽象方法,如果子类是抽象类,

可以重写也可以不重写

抽象方法和虚方法的区别:

抽象方法是特殊的虚方法

1,抽象方法必须在抽象类

2,抽象方法在类中不能有实现体,虚方法必须有

3,抽象方法在非抽象子类中必须被重写,而虚方法在子类中可以实现

也可以不重写

//Person.name = "小米";

//Person.Eat("香蕉");

二,静态成员

1,用static 关键字修饰的成员 只能由类来调用

函数所有行为对派生类的影响都一致的时候,可以定义为静态的

静态成员就相当于一个带有命名空间的全局函数

不需要实例化 而且不需要this指针,和实例(对象)无关

调用方便,加强肋的安全性 可以封装算法 当做工具来使用

有助于实现一些设计模式有助于封装

静态类

同static修饰的类

静态类中只能包含静态成员和construction修饰的常量

静态类不能实例化

静态类默认密封,不能用sealed修饰

不能被继承

有 静态构造方法,但静态狗仔方法必须是无参的

该方法第一次使用静态类调用静态成员时会执行

Student.name = "狗贼";

Student.study();

Console.WriteLine("num");

静态构造方法

可以用来初始化静态成员数据,或用于只执行一次的特定操作

在创建一个实例,第一次使用静态成员时,自动执行

不带 访问修饰符,不带参数

不能重载

 

里氏转换

as ( )

 

 

部分代码

 

abstract class A

{

public abstract void Mi();

}

abstract class B : A

{

public abstract void ni();

}

class C : B

{

public override void Mi()

{

throw new NotImplementedException();

}

public override void ni()

{

throw new NotImplementedException();

}

}

class Beauty

{

public static int age;

public static void Buy()

{

Console.WriteLine("大仙");

}

}

public sealed class time

{

public static int firsttime;

 

static time()

{

firsttime = 5;

Console.WriteLine("拜拜了您哪");

}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章