java 抽象类和接口

Posted 彬哙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 抽象类和接口相关的知识,希望对你有一定的参考价值。

抽象类和接口

抽象类

1、抽象类用关键字 abstract 声明,用extends继承。

2、抽象类只能单继承。

3、抽象类中,可以用关键字 abstract 声明抽象方法,抽象类中可以存在抽象方法,但抽象方法不能存在与其它的类中。

4、抽象类不能用new实例化,只能继承,靠字类去实现它,类似与对子类的约束。

5、抽象类构造器,也可以有有参构造器,在字类的构造器中,使用 super 进行调用父类抽象类的构造器,在执行子类本身的构造器;

package abstractDemo;

//抽象类
public abstract class abstractClass {
    public abstractClass() {
        System.out.println("执行了抽象类的无参构造器");
    }

    public abstractClass(int i){
        System.out.println("执行了抽象类的有参构造器");
    }

    public void go(){
        System.out.println("执行了go方法");
    }

    public abstract void testAbstact(); //抽象方法
}

//字类
class ChrildClass extends abstractClass{

    //字类构造器
    public ChrildClass(int i) {
        super(i);
    }

    //重写抽象方法
    @Override
    public void testAbstact() {
        System.out.println("执行了抽象方法");
    }

}

//执行类
class Appcation{
    public static void main(String[] agrs){
        ChrildClass chrildClass = new ChrildClass(2);
        chrildClass.testAbstact(); //调用抽象方法
        chrildClass.go(); //调用父类的go方法
    }
}

执行结果:

执行了抽象类的有参构造器
执行了抽象方法
执行了go方法

接口

1、接口就是规范,定义的是一组规则,继承了接口,就必须实现接口中的所有方法。

2、接口用关键字 interface 声明,子类用implements继承,字类需要重写接口中的所有方法。

3、可以实现多继承。

4、接口中的所有的定义都是抽象了,即默认为 public abstract。

5、接口不能被实例化,因为接口没有构造方法。

package interfacDemo;

public interface interfaceClass {

    void add();
    void update();
}

class ChildrenClass implements interfaceClass{
    @Override
    public void add() {
        System.out.println("ChildrenClass实现接口的add方法");
    }

    @Override
    public void update() {
        System.out.println("ChildrenClass实现接口的update方法");
    }

}

class OrtherCHildrenClass implements  interfaceClass{
    @Override
    public void add() {
        System.out.println("OrtherCHildrenClass实现接口的add方法");
    }

    @Override
    public void update() {
        System.out.println("OrtherCHildrenClass实现接口的update方法");
    }
}

class  Action{
    public static void main(String[] agrs){
        ChildrenClass childrenClass = new ChildrenClass();
        childrenClass.add();
        childrenClass.update();
        OrtherCHildrenClass ortherCHildrenClass = new OrtherCHildrenClass();
        ortherCHildrenClass.add();
        ortherCHildrenClass.update();
    }
}

执行结果:
ChildrenClass实现接口的add方法
ChildrenClass实现接口的update方法
OrtherCHildrenClass实现接口的add方法
OrtherCHildrenClass实现接口的update方法

以上是关于java 抽象类和接口的主要内容,如果未能解决你的问题,请参考以下文章

Java学习笔记—抽象类和接口

Java基础:抽象类和接口

Java抽象类和接口

Java基础5:抽象类和接口

Java抽象类和接口4000+字深度剖析

java中抽象类和接口的异同点