接口可以用USB接口来比喻,USB插口存在于多种不同的产品上,电脑,电视,笔记本之类,而这些产品又有很多品牌,不同品牌享受的系统服务也不同,USB接口就是一个通用点,他们的USB接口都能接U盘和鼠标。由此我们就可以得出结论,接口是一个只要你满足规范约束就能使用一些功能其中所指的约束。
例如我们写一个mouse鼠标在USB接口里,电脑(computer)能用,笔记本(laptop)也可以使用
interface 用于定义接口的关键字
public interface USB(){ void mouse(); }
引用接口
public class Computer implements USB{ @Override public void mouse() { System.out.println("可用鼠标"); } }
实现
public class ComputerTEST { public static void main(String[] args) { USB computer = new Computer(); computer.mouse(); } }
· 抽象方法是出现在基类中的一种方法,但要求在派生类中被重写。
· 一个抽象方法只有方法头,没有方法主体
· 包含抽象方法的类就会自动办成抽象类,隐刺必须以abstract关键字声明。
· 抽象方法会被用来确保派生类会实现这个方法
· 若类含有抽象方法,则类必须以abstract关键字声明为抽象类
eg.public abstract class
· 抽象类可以含零或多个普通方法,也可以含零或多个抽象方法
· 不论抽象类是否含有抽象方法,其都不允许实例化,即不能创建抽象类的对象,因为其描述的是抽象概念。它只能作为其他类的基类。
· 若父类是抽象类,且子类不想成为抽象类,则子类必须将父类中所有抽象方法重写为带方法体的普通方法,否则子类仍必须是抽象类。
例
public abstract people{ public void run(){ System.out.println("run"); }//普通方法 public abstract void eat();//抽象方法 }
用teacher来继承people来实现eat方法
public class teacher extends people{ @override public void eat(){ System.out.println("eat"); } }
1.成员区别
抽象类:可以有变量、常量、构造方法(抽象方法、非抽象方法都可以有)
接口: 只能有常量和抽象方法。
2.关键字不同
3.修饰符区别
4.关系区别
类与类:属于继承关系,单继承
类与接口:属于实现关系,可以单实现,也可以多实现
接口与接口:属于继承关系,可以单继承,也可以多继承
5添加子方法对子类的影响
在抽象类中添加新方法,提供默认方法,在子类中可以不用修改
在接口中添加新方法,实现该接口的类必须实现这个新添加的方法
6.设计理念区别
抽象类:对类抽象,包括了属性行为
接口:主要对行为抽象