一、抽象类

1.概念

包含一个抽象方法的类就是抽象类。

2.抽象方法:

声明而未被实现的方法,抽象方法必须使用abstract关键字声明。

3.抽象类被子类继承,子类(如果不是抽象类)必须重写抽象类中的所有抽象方法

4.抽象类不能直接实例化,要通过其子类进行实例化

代码示例:

abstract class Abs {
    private int age;

    public void tell() {

    }

    // 抽象方法
    public abstract void say();

    public abstract void print();

    public void setAge(int age) {
        this.age = age;
    }

    public int getAge() {
        return age;
    }
}

class AbsDemo extends Abs {
    public void say() {
        System.out.println(this.getAge());
    }

    public void print() {

    }
}

public class AbsDemo01 {

    public static void main(String[] args) {
        // Abs a = new Abs();不能直接实例化
        AbsDemo a = new AbsDemo();
        a.setAge(20);
        a.say();
        a.print();
    }

}

.
.

二、接口

1.接口是java中最重要的概念,接口可以理解为一种特殊的类,里面全部是由全局常量和公共的抽象方法所组成。

2.接口格式:

interface interfaceName{
    全局常亮
    抽象方法
}

3.接口的实现必须通过子类。使用关键字implements,可以多实现。

4.一个子类可以同时继承抽象类和实现接口。

5.一个接口不能继承一个抽象类,但是可以通过extends关键字同时继承多个接口,实现接口的多继承。

代码示例:

interface Inter1 {
    public static final int AGE = 100;// 全局常量

    public abstract void tell();
}

interface Inter2 {
    public abstract void say();
}

abstract class Abs1 {
    public abstract void print();
}

class A extends Abs1 implements Inter1, Inter2 {//4.一个子类可以同时继承抽象类和实现接口。
    public void tell() {

    }

    public void say() {

    }

    public void print() {

    }
}

interface Inter3 extends Inter1, Inter2 {//5.一个接口不能继承一个抽象类,但是可以通过extends关键字同时继承多个接口,实现接口的多继承。

}

public class InterDemo01 {

    public static void main(String[] args) {
        // Inter i = new Inter(); //不能直接实现
        A a = new A();//3.接口的实现必须通过子类。使用关键字implements,可以多实现
        a.tell();
        System.out.println(Inter1.AGE);// 全局常量通过类名(接口)来调用
        a.say();
        a.print();
    }

}