this是指当前对象,静态方法是通过类调用的方法,不需要实例化,既然不需要实例化,就没有当前对象,既然没有当前对象,就不会有this
package com.etc.day06;
public class E {
static int i = 10;
static {
System.out.println(this.i);
👆🏻
}
public static void main(String[] args) {
E.i++;
System.out.println(E.i);
}
}
输出结果:
helloworld1
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "com.etc.day06.Person.t2()" because "null" is null
at com.etc.day06.Person.main(Person.java:12)
implements是代表实现接口的方法,不是继承关系。
package com.etc.day06.lianxi2;
public class Test1 {
public static void main(String[] args) {
/**
* 实现多态
*/
Pet pet = new Pet();
Person person = new JavaTeacher();
Person person1 = new MusicTeacher();
JavaTeacher javaTeacher = new JavaTeacher();
pet.petTeacher(person);
pet.petTeacher(person1);
// 在多态环境下,调用成员变量时使用父炎声明的版本,调用成员方法时使用子类声
// 明的版本
Person person2 = new Person();
System.out.println(person2.a);
javaTeacher.teach();
}
}
抽象类:
package com.etc.day06.lianxi3;
public abstract class Demo1 {
/**
* 抽象类里面就算没有抽象方法也不会报错
*/
// public abstract void A();
public void B(){
}
}
接口可以实现多继承,但是关键词不是implements,而是extends。