Java单例设计模式与多态

DAY6

单例设计模式:
定义:就是让一个类永远只产生一个对象

  • 饿汉式
  • 将构造方法私有化
  • 在类内部创建一个私有的静态的最终的本类对象
  • 提供一个共有的静态的返回值类型为本类对象的一个方法
    代码实现:
    Java单例设计模式与多态_第1张图片
  • 懒汉式
  • 将构造方法私有化;
  • 在类内部声明一个私有的静态的本类对象的一个方法;
  • 提供一个公共的静态的返回值类型为本类对象的一个方法,在方法体内部返回本类对象的时候,会首先判断当前类的对象引用是不是Null,如果是Null,就创建本类对象;如果不是Null就直接返回
    代码实现:
    Java单例设计模式与多态_第2张图片
    注:在开发中为了保证线程安全性,用饿汉式比较多
    多态:
    定义:就是某一事物在不同环境下所表示的不同状态
    如:①水:常温----液态;很冷的温度----固态;很高的温度----气态;
    ②定义一个动物类;定义一个猫类;定义一个狗类;
    然而猫和狗都是动物,所以它们的父类都是动物类,动物有的特性一般来说猫和狗都有
    多态的前提和体现:
  • 需要有继承关系
  • 父类引用指向子类对象;
  • 子类重写父类的方法;
    因此,Java中多态的定义为:就是使用父类引用指向子类对象,然后再使用父类引用调用子类重写了的方法
    多态成员访问的特点:
  • 成员变量:
    编译看左边,运行看左边
  • 成员方法:
    编译看左边,运行看右边
  • 静态方法
    编译看左边,运行看左边
    代码解释:
    Java单例设计模式与多态_第3张图片
    依据上述代码:
    关键看:Animal p = new Cat();代码
    ①成员变量调用后输出为:name=动物类,age=10
    ②成员方法调用后输出为:Cat类
    ③静态方法调用后输出为:Animal类的test
    因此前面我们说静态方法的重写算不上重写,因为没有重写的特性。
    多态的好处:
  • 提高了程序的维护性(由继承保证)
  • 提高了程序的扩展性(由多态保证)
    多态的弊端:
  • 父类引用无法访问子类特有的方法(可以使用转型)
    注:任何类型的数据都可以被Object类型接收,Object类是所有类的父类,Object类是java的根类
    Java中的转型:
  • 向上转型
    从子到父:父类引用指向子类对象
  • 向下转型
    从父到子:将父类引用转换成子类对象(强转的时候需要注意,要强转的类型和父类指向的类型要保持一致)

你可能感兴趣的:(温习基础)