User.java package admin;public interface User {public static int dd = 2000;public abstract String getId(); // 在接品中加不加abstract 都一樣。因為介面中預設的修飾符為 abstract public abstract void setId(String id);public abstract String getName();public abstract void setName(String name);}/* * * 這是定義一個 User 介面 * * 裡面只是將一些基本的操作方法進行定義,然後在 Abstract 類裡面進行實寫 * */AbstractUser.javapackage admin;public class AbstractUser implements User { private String id; private String name; public void setId(String id) { this.id = id; } public String getId() { return this.id; } public void setName(String name) { this.name = name; } public String getName() { return this.name; } public void say() { System.out.println("this is abstractUser"); }}/* * 這是一個 抽象類別 implements User 介面,抽象類別把介面裡面的所有的方法進行重寫,然後又定義了 User 對象的所有 屬性 * * */SqlUser.javapackage admin;public class SqlUser extends AbstractUser { public String show() { return "this is SqlUser"; } } /* * * 這是一個有實際功能的 類,其繼承了 abstractUser ,其裡面再添加的方法只有與 些所特有的類有關的 * 特有的方法 * */web.javapackage admin;public class Web { public static void main(String args[]) { SqlUser user = new SqlUser(); AbstractUser abuser = new AbstractUser(); abuser.say(); System.out.println(user.show()); System.out.println(user.dd); } }/* * 抽象類別與介面的應用 * * 介面中的一般都是定義一般抽象方法,在方法前面加不加abstract 都一個樣,因為介面的的預設修飾符就是abstract * 有抽象方法的類一定要聲明為抽象類別,而作為子類繼承了抽象類別,那麼抽象類別裡面的方法一定都要重載,如果一個抽象類別裡面沒有抽象方法,這個類也是 * 可以執行個體化的 * * 一般都項目開發過程中 * * 介面定義一個對屬性的操作 * get set * 抽象類別裡定義屬性,重寫操作 * * 而繼承抽象類別的子類把一些當前子類特有的功能添加進去,如果以後有什麼 新的功能 ,只要繼承一下抽象類別再添加一些方法就可以了 * * * * * */