java入门08-static 抽象类

static

public class Student {
    private static int age // 静态变量
    private double score  // 非静态变量
    public static void mian {
       Student s  = new Student()
       System.out.print(s.age) // 0 
       System.out.print(s.score) // 0
       System.out.print(Student.age)
       System.out.print(Student.score) //报错, 获取不到非静态变量

        go(); //go fun
        run(); // 报错, 静态方法和类一起加载,加载的时候run方法还不存在
    }

    public void run () {
        System.out.println("run fun");
    }
    public static void go () {
        System.out.println("go fun");
    }
public class Application {
    // 匿名代码块 : 可以赋初始值, 和Application类同时创建
    {
        System.out.println("匿名代码块");
    }
    // 静态代码块
    static {
        System.out.println("静态代码块");
    }

    public Application() {
        System.out.println("Application");
    }
    public static void main(String[] args) {
        Application application = new Application();
        System.out.println("-----");
        Application application2 = new Application();
     }

}

// 输出结果:  静态代码块只执行一次,
> 静态代码块
> 匿名代码块
> Application
> -----
> 匿名代码块
> Application

```java
public class Application{
    public static void main() {
      System.out.println(Math.random()); // 随机数
   }
}

import static java.lang.Math.random; // 静态导入包
public class Application{
    public static void main() {
      System.out.println(random()); // 随机数
   }
}

抽象类

抽象类不能 new, 只能靠子方法去实现
抽象内里可以写普通方法
抽象方法必须在抽象类中

public abstract class Person { //抽象方法
// 抽象类
    public abstract void say2(); //抽象类, 不能有方法体, 只要名字
}
public abstract class Stuend extentd Person { //继承抽象类,必须重写抽象类里的抽象方法
     @Override
    public void say2() {
        
    }
}

版权声明:本文为qq_41948472原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。