Java面向对象04:static关键字和抽象类
转载
static关键字的用法
静态变量和静态方法
public class Hello {
private static int age; //静态变量,又称类变量
private double score; //实例变量
public static void main(String[] args) {
Hello a = new Hello();
System.out.println(Hello.age); //静态变量,可以不创建对象,通过类名调用,推荐使用这种方式调用
System.out.println(a.age); //也可以创建对象调用
System.out.println(a.score); //实例变量,必须创建对象才能调用
//同理静态方法也是如此,但由于静态方法是和类一起加载的,因此不可调用非静态方法,反之可以
}
}
静态代码块
public class Hello {
public static void main(String[] args) {
Hello hello = new Hello();
System.out.println();
Hello hello1 = new Hello();
}
static {
System.out.println("静态代码块,只执行一次"); //静态代码块,在类加载的时候就会执行,无论是否创建了对象。以后不再执行
}
{
System.out.println("匿名代码块"); //匿名代码块,每次创建对象都会执行,和构造方法类似
}
public Hello() {
System.out.println("构造方法");
}
}
静态导入包
//静态导入包,调用方法可以不用写类名
import static java.lang.Math.random;
public class Hello {
public static void main(String[] args) {
System.out.println(random());
}
}
抽象类(和接口类似,但接口可以多继承)
//abstract关键字定义抽象类,其不能创建对象,只能通过子类继承重写
public abstract class Hello {
//定义抽象方法,只有名字没有方法体
public abstract void method();
public void f(){}
public Hello() {} //虽然抽象类不能new对象,但也存在构造器
}
class Son extends Hello{
@Override
public void method() {
//继承抽象类的子类,除非自己也定义为抽象类,否则必须要重写父类的抽象方法,普通方法不用重写
}
}
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。