static 关键字 :修饰符,可以修饰成员变量和成员方法。
下面是一个示例:
被static修饰过的成员变量,经过定义之后就不再变化,除非进行修改。
将static用在方法中的时候,可以直接通过类名进行调用该方法,并且如果这是一个工具类,可以将构造方法私有化,这样就无法创建对象。下面是一个示例:
main方法是一个静态方法,因此只能调用和访问静态成员,如果非要想使用非静态的成员,可以把这些内容放在一个对象中。
下面也是一个示例:
![]()
继承:
继承的格式:
下面是一个关于继承的示例:
下面是一个示例:
num调用本方法中的成员变量,this调用本类中的成员变量,super调用父类中的成员变量。
子类可以访问父类中的非私有成员,但不能访问私有成员。
方法重写:
另外注意:如果子类和父类有相同的成员方法,那么在创建的子类对象中调用该方法是会优先调用子类的方法。这个叫做方法重写。
这里通过 super.show1() 在子类中重写了这个方法,并且通过super进行访问。还可以对父类的这个方法做修改和增强。
上面是多层继承示例。
构造函数的继承:
关于子类父类的构造方法的创建,可以看到子类中的带参构造方法中的super继承了父类中的构造方法。可以理解为子类父类共用父类中的非私有方法和变量??父类的数据让父类完成初始化,自己的数据让自己进行初始化。
(子类可以使用父类中的所有非私有变量和方法)
final关键字 :
下面是一个方法method被final修饰符限定之后的示例,子类再调用父类的方法method是出现了报错。
下面这个示例中final修饰了类Fu,所以不能再有子类继承父类,但是类Fu可以有父类。
final修饰数据类型时,基本数据类型:数据值不可改变
引用数据类型:地址值不可改变,但是内容可以改变
不能改变的是地址值,但是内容可以改变。下面是一个示例: