• 接口和抽象类


    接口的优点和缺点

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

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

    接口的访问权限

    接口中的方法:只能是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分别表示让本地操作系统实现和让子类实现,如果同时出现,那么无法说清楚到底让谁来实现。

  • 相关阅读:
    Jenkins-在windows上配置自动化部署(Jenkins+Gitblit)
    GIT-Linux(CentOS7)系统部署GitLab服务器
    VMware 安装Linux系统 CentOS
    GIT-windows系统下Gitblit的使用方式
    SQL 显示所有表所占存储空间
    通过JavaScript更新UpdatePanel备忘
    Entity Framework调用表值函数实现全文检索?
    转载:javascript 拖拽排序,简洁示例备忘
    c++ 读写注册表
    MSSQL中建立分区表(转载备忘)
  • 原文地址:https://www.cnblogs.com/tp123/p/6383285.html
Copyright © 2020-2023  润新知