static和抽象类
package com.cheng.oop.pol;
public class Demo01 {
private static int age;//静态变量
private double score;//非静态变量
public static void main(String[] args) {
Demo01 demo01 = new Demo01();
System.out.println(Demo01.age);//static修饰的变量可以通过 类名.变量名 直接调用
System.out.println(demo01.age);//可通过 对象名.变量名调用
System.out.println(demo01.score);//可通过 对象名.变量名调用
}
}
package com.cheng.oop.pol;
public class Demo01 {
{//第二执行
System.out.println("匿名代码块");
}
static {//第一执行
System.out.println("静态代码块");
}
public Demo01(){//第三执行
System.out.println("构造方法");
}
public static void main(String[] args) {
Demo01 demo01 = new Demo01();//实例化
System.out.println("============");
Demo01 demo02 = new Demo01();//两次实例
/*
输出结果如下
静态代码块
匿名代码块
构造方法
============
匿名代码块
构造方法
可以看出静态代码块只执行了一次,是在类加载的时候执行。
*/
}
}
抽象类:
父类:
package com.cheng.annotation;
//抽象类,相当于是约束
//由其子类对其抽象方法进行重写
public abstract class Abstract {
public abstract void act();//抽象类的抽象方法
}
子类:
package com.cheng.annotation;
//抽象类的子类继承父类,对其方法抽象方法进行重写
//若其子类仍为抽象类,则子类的子类实现方法
public class Abstract2 extends Abstract{

浙公网安备 33010602011771号