抽象类、静态类、单例

2017-12-13  本文已影响0人  TALY

抽象类

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

public abstract void  Practice();

抽象方法是一种特殊的虚方法,它只起声明作用,所以只加一个“;”号,一定不能带实现部分。

含有抽象方法的类也必须用abstract修饰,我们称之为抽象类。

抽象类 没有 抽象方法也可以成为抽象方法;

但是 抽象方法一定要在抽象类里面。

抽象类独立于抽象方法,也就是说没有抽象方法,类也可以声明为抽象类,抽象类不能被直接实例化,其他跟普通类没有区别。

1.抽象类中如果有抽象方法,那么被继承的具体类一定要实现抽象类中得所有抽象方法。

2.当然,如果是抽象类B继承抽象类A,那么抽象类B可以实现基类A中的抽象方法,可以不实现A中得抽象方法。

作用

抽象类用途:提供一个可供多个派生类共享的通用基类的定义。

其实,这就是类(抽象类)的多态。

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.静态构造方法给实例做初始化。

静态类是一种工具类,不能实例化,不能继承

掌握单例设计模式思想和实现

抽象类和抽象方法

上一篇 下一篇

猜你喜欢

热点阅读