笔记

万物寻其根,通其堵,便能解其困。
  博客园  :: 新随笔  :: 管理

java 抽象类和接口

Posted on 2024-04-13 14:14  草妖  阅读(4)  评论(0)    收藏  举报
AbstractDemo.java
/**
 * 抽象类(与接口对比差异)
 * 一个类只能继承一个抽象类
 * */
public abstract class AbstractDemo {
    // 可以不赋值变量且可以使用public意外的修饰符
    public String tempBBBB;
    private String tempAAA="123455";

    // 可以有静态代码块和方法
    static {
        System.out.println("静态代码块...");
    }
    public static void testFunc(){
        System.out.println("静态方法...");
    }
    // 可以实现方法
    public void running(){
        System.out.println("正在跑....");
    }
    // 可以使用public意外的修饰符
    private void runend(){
        System.out.println("已经跑完...");
    }
}

 

InterfaceDemo.java
/**
 * 接口(与抽象类对比差异)
 * 多个接口可以被一个类实现
 * */
public interface InterfaceDemo {
    // 变量必须赋值,且只能使用public修饰符(可省略)
    String tempAAA="123455";
    /**
     * 注:虽然只写了"String tempAAA="123455";"
     * 但是完整的应该为:"public static final String tempAAA="123455";"
     * 所以外部不能修改,只能像静态成员变量一样引用,即:InterfaceDemo.tempAAA
     * */

    /*
    不能用静态代码块和方法
    static {

    }
    static testFunc();
    */

    // 不管是默认方法还是抽象方法,只能使用public修饰符(可省略)
    // 可以默认实现方法(注:这是在Java8及之后的版本才能实现,并且必须有"default"否则报错)
    default void running(){
        System.out.println("正在跑....");
    }
    // 只能是抽象方法(可以移除修饰符"abstract")且不能具有实体(无{}的内容)
    abstract void runend();
}