1.java继承:
把多个类的公共部分提取出来,作为一个父类
继承是java中实现代码重用的重要手段之一,java只支持单根继承,一个类只能有一个直接父类
子类可以用关键字extends来继承父类,可以继承父类的所有的属性和方法(私有属性和方法不可)
继承的时候,创建子类对象前必须先隐形创建父类对象
只要父类有无参构造,创建子类的时候,会执行父类无参构造
如果父类只有有参构造,没有无参,子类的构造方法会失效,除非子类用super关键字显示的调用父类有参构造
所有的构造方法都是来自Object类,Object类是所有类型的父类
public class A{
}
//相当于
public class A extends Object{
}
this带表本类对象,super代表父类对象(没有同名属性、方法的时候,两者效果相同)
2.super
子类访问父类成员:
访问父类的构造方法:在访问的时候,必须放在第一句
super(); //访问父类的无参构造
super(参数); //访问父类的有参构造,参数类型个数等同于父类有参构造
访问父类属性:super.name;
访问父类方法:super.print();
私有属性和方法不可以访问
继承条件下的构造方法:
子类 | 通过super调用父类的有参 | 通过this调用其他构造方法 | |
---|---|---|---|
无 | 无 | 默认调用父类无参 | |
有 | 无 | 执行父类对应,父类无参不执行 | |
无 | 有 | 遵守上面两条规定 |
3.单例模式
单例模式确保某个类只有一个实例化对象。
懒汉式:
private static Singleton s;
pbulic static Singleton getInstance()
{
if(s==null)
{
s=new Songleton();
}
return s;
}
饿汉式:
private static Singleton s;
static
{
s=new Songleton();
}
public static Singleton2 getInstancs()
{
return s;
}