单例设计模式中有饿汉式和懒汉式两种设计模式
package com.itheima.demo10;
//饿汉式 空间换时间
public class A {
//第一步构造器私有
private A(){}
//第二步将类A的一个对象交给A保存
static A a=new A();//变量也必须是静态的因为下面的方法是静态的,静态只能找静态的。
//第三步返回对象或者类变量a方法静态是因为构造器已经私有不能new对象,也就是不能通过new对象的方法来调用方法所以方法也要用static修饰
public static A getA(){
return a;
}
}
package com.itheima.demo10;
//饿汉式 空间换时间
public class A {
private B(){}
static B b;
public static B getB(){
if (b==null){
b=new B();
}
return b;
}}
继承
继承是类与类之间产生了父子关系 Zi extends Fu
优点:提高代码的复用性
用法:可以单继承和多层继承,就是不可以多继承
!!具有继承关系的两个类,在new对象的时候的父类无参构造器会优先执行,若父类只有有参构造器,需要手动添加否则会报错,因为当你没写构造器时,系统会给你一个隐藏的无参构造器而当你写了有参构造器时系统就不会再给你一个无参构造器,此时的无参构造器需要你手动添加,否则将会报错。
因为子类默认第一行有隐藏的super()会去调用父类的无参构造器,若要调用父类有参构造器则需要给super传对应的参数
多态
多态产生的三个条件:
1.必须含有继承关系
2.将子类对象交给父类
3.方法重写
注意!!程序运行规则是
!!调用方法时:编译看左,运行看右;
!!调用变量时:编译看左,运行看左;
4.!!!!强制类型转换
demo:
Fu f= new Zi();
父类要想再转回去则
Zi z=(Zi)f;
!!!为了防止类型不一致出错需要用到instanceof比较变量与子类的类型