美文网首页
抽象类(abstract class)和接口(interface

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

作者: MC_Honva | 来源:发表于2017-02-21 20:43 被阅读60次

概述

在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)的区别

相关文章

网友评论

      本文标题:抽象类(abstract class)和接口(interface

      本文链接:https://www.haomeiwen.com/subject/aiyuwttx.html