美文网首页
抽象 静态 单例

抽象 静态 单例

作者: fooliker | 来源:发表于2017-03-16 16:14 被阅读0次

Abstract

抽象类

当基类中存在某些方法一直不会被调用就可以考虑将该方法声明为抽象方法

抽象方法使用abstract修饰,用abstract修饰的方法只能声明不能有实现

抽象方法所在的类必须为抽象类,同样用abstract修饰

抽象类不能被实例化,只能被继承

抽象类里面可以有抽象方法,也可以有没有抽象的方法(抽象类中一样可以有普通方法)

当一个类继承了抽象类的时候,会获取抽象类当中所有的公共成员变量

必须实现抽象类里面所有的抽象方法,否则编译不通过

原因:一个抽象方法没被实现的时候,外界访问会存在错误

抽象方法一样支持方法重载

派生类只能重写实现抽象类当中的抽象方法,不能隐藏方法


抽象类B继承抽象类A,继承之后可以选择实现当中的抽象方法,当抽象类B部分实现抽象类A,此时普通类C继承抽象类B,可以只实现抽象类B里没有实现的抽象方法。

抽象方法和虚方法:

1.抽象方法一定不能有实现,虚方法一定要有实现

2.抽象方法被具体的类继承后,一定要被重写,虚方法可以不重写

3.抽象方法是一种特殊的虚方法,一旦类中有抽象方法,则类必须声明为抽象类,抽象类中可以有虚方法


Static

静态类和静态方法

1.在不需要多个对象个体来协助,直接做这些事情的时候就可以使用静态方法

使用static关键字修饰

普通方法通过实例调用,静态方法通过类调用

类名+只要是静态成员都用static修饰

2.共享数据

非静态和静态成员

1.非静态成员由类的实例对象调用,静态成员由类调用

2.静态成员由类的加载而加载,非静态随着对象的创建而存在

3.静态成员与非静态成员之间的调用:

  -  非静态可以调用静态成员变量

  -  静态只能访问静态成员

静态类:由static关键字修饰 不能实例化

一些公用的变量或者方法可以放在静态类里面,以供其他类使用。例如一些排序算法等,可以把静态类看做是一个工具类,任何地方只要需要都可以调用该类里面的成员,以提高开发效率。

静态构造

格式:static 类名(){ };

静态构造在类加载进内存(第一次使用)的时候进行调用

一般用来给静态成员变量赋值

静态类的特点:

1.仅包含静态成员和const修饰的常量

2.不能被实例化

3.是密封的(默认已经是sealed,不能再用sealed修饰)

4.有静态构造方法,但静态构造方法必须是无参数的


单例

是一种设计模式:前人留下来的一些程序设计经验

单例设计模式:一个类只有一个实例对象,不管怎么通过new创建始终都是同一个对象

单例实现需要三种条件:

1.私有化默认构造

2.内建静态实例

3.静态构造方法给实例做初始化

两种方式:

1.默认构造私有化 private 类名(){ };

内建静态实例 static + 类名 +instance;

在静态构造方法里面初始化 static + 类名(){ instance = new + 类名 };

单例命名规范 share + 类名 public static 类名 Share(){return 类名.instance }

2.内建静态实例 private + 类名 + instance

构造方法必须设置为私有 private 类名(){ };

为实例初始化  public 类名 + Instance  {

get{ if(instance  == null) instance  = new 类名+();

}

Return instance;}

调用: 类名+对象名 = 类名.属性名;

相关文章

  • 抽象 静态 单例

    Abstract 抽象类 当基类中存在某些方法一直不会被调用就可以考虑将该方法声明为抽象方法 抽象方法使用abst...

  • 抽象类、静态类、单例

    抽象类 用abstract修饰的方法,称为抽象方法。 public abstract void Practice(...

  • 知识就是力量

    静态工厂方法模式 抽象工厂模式 适配器模式 装饰者模式 观察者模式 单例模式

  • 【设计模式】单例模式

    单例模式 常用单例模式: 懒汉单例模式: 静态内部类单例模式: Android Application 中使用单例模式:

  • Android - 常见内存泄漏

    单例 单例静态对象持有activity引用,且因静态对象生命周期比activity还长,当act被销毁时,单例中的...

  • 常用的设计模式

    单例模式:Singleton 单例:静态变量,私有构造器,静态方法 分类: 懒汉单例 :在第一次调用的时候实例化自...

  • 实现单例类

    注意静态方法不能调用对象属性 所以要把单例存在静态变量中 更高效的单例

  • 静态方法、单例模式区别

    观点一:(单例) 单例模式比静态方法有很多优势:首先,单例可以继承类,实现接口,而静态类不能(可以集成类,但不能集...

  • 反射破坏单例模式(静态内部类)

    java反射,破坏单例模式 静态内部类 反射实例化单例

  • 单例模式

    饿汉模式: 懒汉模式: Double CheckLock(DCL)实现单例 静态内部类实现单例 枚举单例 使用容器...

网友评论

      本文标题:抽象 静态 单例

      本文链接:https://www.haomeiwen.com/subject/gwdjnttx.html