美文网首页
抽象类(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