JAVA基础--db08_java继承-单例模式

时间:2023-02-17 15:59:14

1:有些工具类的方法都是静态的,为了不让你创建对象,可以将构造函数私有化

2:设计模式:强调的是思想,换到其他面向对象的语言中也适应

public classHelloWorld {

   public static voidmain(String[] args) {

      Single2 s1 =Single2.getInstance();

      Single2 s2 =Single2.getInstance();

      System.out.println(s1==s2);

   }

}

/**

 * 单例

 * 1:私有化该类构造函数

 * 2:通过new在本类中创建一个本类对象

 * 3:定义一个共有的方法将本类对象返回

 */

//开发 饿汉式

class Single{

   private static Single s = new Single();

   private Single(){}

   public static SinglegetInstance(){

      return s;

   }

}

//面试懒汉式 调用的时候才会加载对象

class Single2{

   private static Single2 s = null;

   private Single2(){}

   public static Single2getInstance(){

      if(s==null)

         s = newSingle2();

      return s;

   }

}

3:继承:

提高了代码复用性,让类与类之间产生了关系,是多态的前提

Java支持单继承,不支持多继承(因为会产生不确定性,多个父类中有相同成员)

当本类的成员和局部变量同名用this区分

当子父类的成员变量同名用super区分

this代表本类对象的引用,super代表一个父类的空间

子类不能直接访问父类中私有的内容,可以间接访问,通过get

子父类中出现同名函数,运行子类的,覆盖掉了父类的,因为加强了。

覆盖注意事项:子类权限必须大于等于父类

静态只能覆盖静态,或被静态覆盖

覆盖的注意:当子类需要对功能扩展时,需要保留父类又要扩展,就可以用覆盖功能

JAVA基础--db08_java继承-单例模式