• 抽象类:
    抽象类中可以定义抽象方法,也可以定义非抽象方法。
  • 接口:
    接口中必须全部定义抽象方法。
  • A:接口概述
    接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。
    接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。
    除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。
    接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在 Java 中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。
  • B:接口特点
    a:接口用关键字interface表示
    interface 接口名 {}
    b:类实现接口用implements表示
    class 类名 implements 接口名 {}
  • c:接口不能实例化
    那么,接口如何实例化呢?
    按照多态的方式来实例化。
  • d:接口的子类
    a:可以是抽象类。但是意义不大。
    b:可以是具体类。要重写接口中的所有抽象方法。(推荐方案)
    C:案例演示
    接口特点
class Demo01_Interface {
    public static void main(String[] args) {
        //Inter i = new Inter();        //接口不能被实例化,因为调用抽象方法没有意义
        Inter i = new Demo();           //父类引用指向子类对象
        i.print();
    }
}
/*
* A:接口概述
    * 从狭义的角度讲就是指java中的interface
    * 从广义的角度讲对外提供规则的都是接口 
* B:接口特点
    * a:接口用关键字interface表示   
        * interface 接口名 {}
    * b:类实现接口用implements表示
        * class 类名 implements 接口名 {}
    * c:接口不能实例化
        * 那么,接口如何实例化呢?
        * 按照多态的方式来实例化。
    * d:接口的子类
        * a:可以是抽象类。但是意义不大。
        * b:可以是具体类。要重写接口中的所有抽象方法。(推荐方案)
* C:案例演示
    * 接口特点
*/

interface Inter {
    public abstract void print();                   //接口中的方法都是抽象的
}

class Demo implements Inter {
    public void print() {
        System.out.println("print");
    }
}

abstract class Demo implements Inter {
    //可以不实现这个抽象方法,实现了这个接口就等于继承这个print方法
    //public void print() {
    //  System.out.println("print");
    //}
}