欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java入门知识接口与抽象类的区别

程序员文章站 2022-06-21 13:55:28
在学习到这两个概念后,总感觉比较模糊,感觉这两个东西很像,所以在此做一个笔记抽象类与接口的区别:成员区别:抽象类:抽象类中可以有变量、常量、抽象方法、非抽象方法和构造方法。(有抽象方法的类一定是抽象类,抽象类不一定有抽象方法)public abstract class Animal{ Animal(){ //无参构造方法 } Animal(int age){ //带参构造方法 thi...

在学习到这两个概念后,总感觉比较模糊,感觉这两个东西很像,所以在此做一个笔记

抽象类与接口的区别:

成员区别:

抽象类:抽象类中可以有变量、常量、抽象方法、非抽象方法和构造方法。(有抽象方法的类一定是抽象类,抽象类不一定有抽象方法)

public abstract class Animal{
    Animal(){                      //无参构造方法
    }

    Animal(int age){             //带参构造方法
        this.age = age;
    }

    public int age = 10;           //变量

    final private int height = 20; //常量

    public void setAge(int age){   //非抽象方法
        this.age = age;    
    }
    public void putHeight();       //抽象方法
}

接口:可以有常量和抽象方法。(变量的定义隐含final关键字的修饰)

public interface Person(){
    int age = 10;   //常量 (默认)隐含public static final 修饰

    void work();    //抽象方法 (默认)隐含public abstract 修饰
}

关系区别:

类与类:继承关系。单继承、多层继承。

public  class A extends B(){
    ...
)

类与接口:实现关系。单实现、多实现(一个类实现多个接口)。

public class A extends B implements C,D{ //单继承多实现
    ...
}

接口与接口:继承关系。单继承、多继承。

public  interface A extends B,C(){  //多继承
    ...
)

设计区别:

抽象类:对行为和属性进行抽象。

接口:侧重对行为进行抽象。

本文地址:https://blog.csdn.net/qq_36803895/article/details/107696318