1.static
static用于修饰成员变量、成员方法,static修饰的成员变量称为类变量,static修饰的成员方法称为类方法。无static修饰的成员变量和成员方法被称为实例变量和实例方法。
类变量与类一起加载一次,在内存中只存一份。
访问类变量和类方法的方法:类名.类变量,类名.类方法。对象名.类变量(不推荐),对象名.类方法(不推荐)
类变量主要用于某个数据质素要一份,且希望能够被多个对象共享。例如:班级的学生个数。
访问自己类中的类变量可以省略类名访问。
main方法也是类方法,main方法的调用隐藏有类名.main()。
类方法最常见的应用场景时工具类。且工具类中的空参构造建议私有。
类方法中不可以出现this关键字。
static{}代码块同类的加载自动执行。用于完成类的初始化。
{}代码块同每次创建对象时自动执行。
2.继承
子类能继承并使用父类的非私有成员。
权限修饰符:
private:只能本类。
缺省:本类、同一个包。
protected:本类、同一个包、子孙类。
public:任意位置。
Object是祖宗类,所有类都继承于Object类
3.重写
子类可以重写一个方法名称、参数列表一样的方法
l子类重写父类方法时,访问权限必须大于或者等于父类该方法的权限( public > protected > 缺省 )
重写的方法返回值类型,必须与被重写方法的返回值类型一样,或者范围更小。
私有方法、静态方法不能被重写,如果重写会报错的。
子类中的所有构造方法默认都隐藏一句super()。this和super都必须写在构造方法的第一行。