抽象类(abstract class)和接口(interface)异同

概述

在Java语言中,都是用来对抽象类定义的方法。从关键字,各自区别着手

抽象类(abstract class)

关键字:abstract;

  • 抽象类定义用abstract关键字修饰
  • 不能被实例化,子类继承父类后必须重写父类的抽象方法;
  • 有抽象方法的类一定是抽象类,但是抽象类不一定含有抽象方法。

public abstract class dog {
/**
* 抽象类有构造函数,而接口没有
/
public dog() {
super();
}
/
*
* 抽象方法,必须在子类中实现
* @return
/
abstract public String getName();
/
*
* 普通变量
/
String name;
/
*
* 普通方法
*/
public void getSex(){

}

}

接口(interface)

关键字:interface;比abstract class更加抽象特殊的抽象类;

  • 接口中所有方法都是抽象的(可以用abstract修饰,也可以不用)
  • 接口中的修饰符必须是public(默认为不写,其实也是public)
  • 接口中的属性必须是静态全局常量,public static final修饰;
  • 接口不能被实例化
  • 子类实现接口,需要实现接口中所有的方法

public interface cat {
    /**
     * 抽象方法,默认是public,可写也可不写,但是子类必须实现此方法
     * @return
     */
    int getAge();
    /**
     * 写上默认的修饰符,,子类必须实现此方法
     * @return
     */
    public int getNum();
    /**
     * 静态不可变变量,相关修饰隐藏
     */
    int age = 1;
    /**
     * 将修饰显示出来,默认是公开静态不可变常量
     */
    public static final int num =1;
    
}

异:
抽象类有构造函数(用于初始化信息),有静态方法,普通变量,普通方法
接口中都没有这些
同:都有静态常量(接口中默认且只能是public static final),都不能创建实例

参考资料
Android开发:抽象类(abstract class)和接口(Interface)的区别

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,598评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,909评论 19 139
  • 原文链接: 深入理解Java的接口和抽象类 - 海 子 - 博客园 对于面向对象编程来说,抽象是它的一大特征之一。...
    kristine阅读 3,904评论 0 8
  • Advanced Language Features 知识点:一. static修饰符 static修饰符可以用来...
    风景凉阅读 3,258评论 0 0
  • 处理事件的方法 UIView是UIResponder的子类,可以覆盖下列4个方法处理不同的触摸事件 UITouch...
    CoderRH阅读 13,618评论 0 8

友情链接更多精彩内容