• 接口和抽象类


    接口的优点和缺点

    优点:解耦,增加代码的可扩展性。

    缺点:子类实现接口,如果接口需要新增新方法,那么所有子类将不能编译通过,而需要重写新增的方法。

    接口的访问权限

    接口中的方法:只能是public abstract,如果不写public也是public的,不是default的。

    接口中的属性:修饰只能是public static final的,哪怕不写权限也是pubic的。需要初始化。

    比如:

    public interface Test {
        void test();  //这里没有写public和abstract,是省略了。
        int x = 1;  //这里没有写public static final,是省略了。
    }

    抽象类

    1.用abstract修饰的类叫做抽象类,用abstract修饰的方法叫做抽象方法(就是用来重写的)。   

    2.抽象类中存在抽象方法和非抽象方法,所以抽象方法的abstract修饰符不可以省略。

    3.如果某个类包含抽象方法,那么就必须要定义为抽象类。

    4.抽象类就是用来继承的,它不可以被new出来。如果继承了抽象类,那么必须重写抽象类的抽象方法。

    5.抽象类中的非抽象方法以及属性的权限和普通类中的权限完全一致,但是对于抽象方法就不一样。抽象方法不允许private,static,synchronized,native修饰。

    原因:

    a.抽象方法本来就是需要重写的,如果是private权限,则抽象方法没有意义。

    b.抽象方法没有具体的实现,如果是static的也就没有意义。

    c.抽象的方法如果加上synchronized,那么就只能是对象锁(因为不能用static修饰)。然而抽象类不可以实例化,所以锁只能作用于子类,在这里没有用处。

    d.native和abstract分别表示让本地操作系统实现和让子类实现,如果同时出现,那么无法说清楚到底让谁来实现。

  • 相关阅读:
    视图&索引&序列
    PL/SQL语言基础
    C#实现递归矩阵连乘(动态规划的递归自顶向下,非递归自地向上)
    JS 第五课
    请问,小丽的鞋子到底是什么颜色的?
    用10!来回顾 PL/SQL语言基础 && 标准异常名
    SELECT 查询—子查询
    备份和恢复
    JS 第六课
    Linux学习之二Linux系统的目录结构
  • 原文地址:https://www.cnblogs.com/tp123/p/6383285.html
Copyright © 2020-2023  润新知