抽象类
用abstract修饰的方法,称为抽象方法。
public abstract void Practice();
抽象方法是一种特殊的虚方法,它只起声明作用,所以只加一个“;”号,一定不能带实现部分。
含有抽象方法的类也必须用abstract修饰,我们称之为抽象类。
抽象类 没有 抽象方法也可以成为抽象方法;
但是 抽象方法一定要在抽象类里面。
抽象类独立于抽象方法,也就是说没有抽象方法,类也可以声明为抽象类,抽象类不能被直接实例化,其他跟普通类没有区别。
1.抽象类中如果有抽象方法,那么被继承的具体类一定要实现抽象类中得所有抽象方法。
2.当然,如果是抽象类B继承抽象类A,那么抽象类B可以实现基类A中的抽象方法,可以不实现A中得抽象方法。
作用
抽象类用途:提供一个可供多个派生类共享的通用基类的定义。
其实,这就是类(抽象类)的多态。
![](https://img.haomeiwen.com/i2540410/7801070cbc01cc5d.png)
1.抽象方法只作声明,而不包含实现,抽象方法旨在继承后实现,所以不能用private修饰。
2.抽象类不能被直接实例化。
3. 抽象类可以没有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类声明为抽象类。
4.如果抽象类的派生类不是抽象类,那么必须重写抽象类的所有抽象方法。
1.抽象方法一定不能有实现,虚方法一定要有实现;
2.抽象方法被具体类继承后,一定要被重写,虚方法可以不重写
3.抽象方法一种特殊的虚方法,一旦类中有抽象方法,则类必须声明为抽象类,抽象类中可以有虚方法。
静态
最能代表的就是Math方法
用static修饰的成员 称为静态成员
静态成员只能由类来调用(点语法调出)
使用static修饰的类 为 静态类
静态类不许实例化(也就是不能再main函数里面声明new对象),只允许存在静态成员(包括字段,方法,属性)和const修饰的常量(赋值的情况)
静态类特点:
1.仅包含静态成员和const修饰的常量。
2.不能被实例化。
3.是密封的。(默认已经是sealed,不能再用sealed修饰)
4.有静态构造方法(函数),但静态构造方法必须是无参数的。
静态构造方法用于初始化任何静态数据,或用于执行仅需执行一次的特定操作。在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数。
public sealed class Time
{ public static float dealTime;
staticTime()//不能带访问修饰符,不能带参数,不能重载
{
dealTime =0.04f;//如果不写这句话,系统会为静态变量赋一个默认值
Console.WriteLine ("static Time().");
}
}
classMainClass
{ public static voidMain (string[] args)
{ Console.WriteLine (Time.dealTime);
}
}
}
静态类用法
一些公用的变量或者方法可以放在静态类里面,以供其它类使用,例如一些排序算法等,可以把静态类看作一个工具类,任何地方只要需要都可以调用该类里面的成员,以提高开发效率。
static class Tags{
//静态方法;静态属性、字段
}
单例
简单来说单例设计模式就是确保一个类就仅有一个实例。
单例模式是资源管理的必备模式,保证一个类只有一个实例,并且这个实例易于被访问。
实现方法:
1.构造方法设为private。 2.内部建立静态实例。 3.静态构造方法给实例做初始化。
![](https://img.haomeiwen.com/i2540410/99cdefa031fffb8a.png)
静态类是一种工具类,不能实例化,不能继承
掌握单例设计模式思想和实现
抽象类和抽象方法
网友评论