2022.7.4 static&继承
static关键字:静态的意思,可以修饰成员变量,可以修饰成员方法
类的5大成分(成员变量、成员方法、构造器、代码块、内部类)
单例模式:单例是一种设计模式,是为了解决某个问题
单例解决:保证一个类对外只能产生一个对象。
如何实现单例:
1、饿汉单例:
2.懒汉单例:
继承:Java允许一个类通过extends与另一个类建立父子关系,子类 extends 父类,子类继承父类后,就可以得到父类的属性和行为,这样提高代码的复用性,多个子类的相同代码可以放在父类中,增强了类的扩展性。
设计规范:子类共用属性和行为放在父类,子类独有属性和行为放在子类自己那里。
继承的特点:
1.子类可以继承父类的属性和行为,但是子类不能继承父类的构造器。
2.子类可以继承父类私有成员吗?有争议的,我认为可以,只是不能直接访问。
3.子类可以直接用子类名访问父类静态成员。那么子类继承了父类静态成员吗?? 我认为没有继承,只能可以共享的去访问父类静态成员,共享并非继承。
4.Java是单继承模式:一个类只能继承一个直接父类。(接口另说)
5.Java不支持多继承、但是支持多层继承。
6.Java中所有的类都是Object类的子类。
继承后:成员变量、成员方法的访问特点:就近原则,this.子类自己的成员变量,在子类方法中访问父类成员–super.父类成员变量/父类成员方法
方法重写:子类重写了一个申明与父类一样的方法,覆盖父类的方法。子类认为父类的该方法不好用,以后用自己重写的方法。重写方法建议加上一个重写校验注解:@Override
重写的注意事项:
1.重写方法的名称和形参列表必须与父类被重写方法的名称和形参列表一致(重点)
2.私有方法不能重写,静态方法不能重写,重写方法的权限 >= 被重写方法的访问权限。
继承后:子类构造器的特点:子类的全部构造器默认都会先访问父类的无参数构造器,再执行自己的构造器,这是因为默认子类构造器的第一行都有一个super() 访问父类的无参数构造器,写不写都有。
继承后:子类构造器访问父类有参构造器:调用父类有参数构造器,初始化继承自父类的数据,super(…) 根据参数调用父类构造器
this、super使用总结:
1.this访问子类当前对象的成员,super:在子类方法中指定访问父类的成员。
2.this(…) : 访问本类兄弟构造器,super(…):在本类构造器中指定访问父类的构造器
3.注意事项:super(…) 必须放在第一行,this(…) 也必须在第一行。因此两者不能共存一个构造器中。