1.Super关键字
为什么要使用Super关键字?
当子类重写父类的方法之后,子类对象将无法直接访问父类被重写的方法,所以就用Super来访问父类的成员。
如何使用Super?
01)使用Super关键字访问父类的成员变量和成员方法
Super.成员变量
Super.成员方法([参数1,参数2…])
02)使用Super关键字调用父类的构造方法
super([参数 1,参数 2…])
注意点:使用Super调用父类的构造方法的代码必须位于子类构造方法的第一行,并且只能出现一次
2.static
static是用来干什么的?
Java中有一个ststic关键字,用于修饰类的成员,比如成员变量,成员方法以及代码块等,被static修饰的成员具备一些特殊性。
为什么要使用ststic?
在定义一个类的时候,只有new一个对象的时候,系统才会为每个对象分配内存空间,存储各自的数据,但是在开发过程中,如果想要某个特殊的数据在内存中只有一份,并且可以被所有类的实例共享,应该怎么做呢,就举个简单的例子:某个学校的所有学生共享一个学校名称,这个时候完全不必在每个学生对象的内存空间都声明一个变量来表示学习名称,完全可以在学生的对象以外的空间声明一个表示学校名称的变量来让学生共享,这个时候就可以用static来修饰成员变量,该变量就称做静态变量,它可以被所有实例共享。
如何使用static?
class Student{
static String schoolName; //声明静态变量;
}
public class Example{
public static void main (String[]args){
Student stu1=new Student();
Student stu2=new Student();
Student.schoolName='某某大学'; //为静态变量赋值
System.out.println("我是"+stu1.schoolName+"的学生");
System.out.println("我是"+stu2.schoolName+"的学生");
}
}
这里面schoolName是静态变量,因此可以直接使用Student。
注意点:static只能用于修饰成员变量,不能修饰局部变量。比如下段代码:
public class Student{
public void study(){
static int num=10 //这行代码是非法的,编译会报错。
}
}
3.静态方法
为什么要使用静态方法?
我们一般知道如果要使用类中的成员方法,就需要先将这个类实例化,但是在实际开发的时候,会希望在不创建对象的情况下就可以调用某个方法,这种情况就可以使用静态方法。
如何使用静态方法?
在类中的方法名加上static就可以了
1.类名.方法
2.实例对象名.方法
举例:
class Person{
public static void Say(){
System.out.println("hello");
}
}
public class Example{
public static void main(String[]args){
//用类名.方法的方式调用静态方法
Person.say();
//实例化对象
Person person=new Person();
//用实例对象名.方法的方式来调用静态方法。
person.say();
}
}