Java基础学习 Day13 static修饰符,抽象类及接口

static 静态修饰符
  1. 静态变量
    private static int age; 又叫类变量,使用时 类名.变量名;
  2. 静态方法
    public static void go( ){}
    private static int age;  //静态变量
    private double score;
    
    public static void main(String[] args) {
        Student stu = new Student();
        System.out.println(Student.age);  //类变量
        System.out.println(stu.age);      //一般写成上面的格式
        System.out.println(stu.score);    //普通变量
        System.out.println("==========");

        go();  //static类可以直接调用static方法
        //run();  不可直接调用普通方法
        stu.run();  //普通方法必须先new后引用
        stu.go();
    }

    public void run(){
        go();
    }

    public static void go(){
        System.out.println("gogo");
    }

    {
        //匿名代码块,赋予初始值
        System.out.println("匿名代码块");
    }
    static {
        //静态代码块,只执行一次
        System.out.println("静态代码块");
    }

    public Student() {
        System.out.println("构造方法");
    }
}

执行结果:静态代码块
        匿名代码块
        构造方法
        0
        0
        0.0
        ==========
        gogo
        gogo
        gogo

//静态导入包
import static java.lang.Math.random;

main中执行顺序:
静态代码块—匿名代码块—构造方法—方法体

抽象类 abstract
  • 抽象方法,只有方法名没有方法体
public abstract class Action {
    //抽象类也存在构造器
    public Action() {
    }

    //抽象方法,只有方法名没有方法体
    public abstract void doSomething();
}
  • 但是子类继承这个父类后,必须重写抽象方法
//抽象类的所有方法,必须由子类重写
public class A extends Action{
    @Override
    public void doSomething() {

    }
}
接口 interface,implements

普通类 只有具体实现
抽象类 具体实现和抽象方法都有,只不能new
接口 无法自己写方法,只有抽象方法
专业约束,约束和实现分离

  • interface 定义
    接口中所有定义都是抽象的 public abstract
  • implements
    实现接口,必须重写接口方法

作用

  1. 约束
  2. 定义一些方法,让不同人实现
    public abstract
    public static final
  3. 接口不能被实例化,没有构造方法
  4. 用implements实现多个接口,并且必须重写接口
public interface UserService {
    //常量 public static final
    int Age = 33; //一般接口中不会定义常量

    // 接口的所有定义都是抽象的 public abstract
    void add(String name);
    void del(String name);
    void update(String name);
    void query(String name);
}

// implements 实现接口,但是必须重写接口中的所有方法
// 接口可以实现多继承
public class UerServiceImpl implements UserService{
    @Override
    public void add(String name) {

    }

    @Override
    public void del(String name) {

    }

    @Override
    public void update(String name) {

    }

    @Override
    public void query(String name) {

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值