java集合

抽象类和抽象方法必须使用abstract修饰符定义,有抽象方法的类只能被定义为抽象类,抽象类中可以没有抽象方法

1.使用abstract关键字
2.抽象类不可以被实例化
3.抽象方法不可有方法体
4.抽象方法主要作用是被其子类调用

接口是一种特殊的抽象类
接口中所有的方法都是抽象方法。jdk8允许在接口中定义方法,默认方法可以提供实现

1.接口的修饰符都是public
2.接口中定义的是一种规范,接口中不能包含构造器和初始化块定义。接口中可以包含成员变量(只能是静态常量)、方法(只能是实例方法、类方法和默认方法)内部类(包括内部接口、枚举)

接口的作用

1.定义变量 可以用于强制类型转换
2.调用接口中定义的常量
3.被其他类实现

public interface Output {
    // 接口中定义的成员变量只能是常量
    int MAX_CHCHE = 50;
    // 接口中第一的普通方法只能是public的抽象方法
    void out();
    void getData(String msg);
    // 在接口中定义的方法只能是default
    default void print(String... msgs) {
        for (String msg : msgs) {
            System.out.println(msg);
        }
    }
    // 在接口中定义类方法需要使用static修饰
    /**
     * 方法体 
     */
    static String staticTest() {

    }
}
public class OutputFileTest {
    public static void main(String[] args) {
        // 使用类接口来调用类方法
        System.out.println(lee.Output.staticTest());
    }
}

接口成员变量使用public static final修饰的 即使另一个类处于不同包下依然可以通过接口调用

继承

  • 父子类之间的单继承
  • 通过接口实现多继承

接口与抽象类之间联系于区别

  • 都不可以被实例化,位于继承树的顶端,用于被其他类实现和继承
  • 都可以包含抽象方法,实现接口或者结成抽象类的普通子类都必须实现这些抽象方法
  • 接口体现的是一种规范 抽象类体现的是模板
  • 用法的区别

    1.接口里只能定包含抽象方法和默认方法,不可以为普通方法提供实现;抽象类则可以包含普通方法
    2.接口中只能定义静态常量 不能定义普通成员变量 抽象类中既可以定义普通成员变量也可以定义静态常量
    3.接口中不能定义静态方法;抽象类中可以定义静态方法
    4. 接口中不包含构造器;抽象类中的构造器不是为初始化 而是为了让子类调用构造器完成抽象类的初始化
    5. 接口中不可以包含初始化块;抽象类中可以包含初始化块
    6.一个类中只能有一个直接父类包括抽象类;一个类可以实现多个接口,通过使用接口弥补java单继承的不足
    

    面向接口的编程
    通过面向接口的编程降低程序的隅合。

  • 工程模式
  • 命令模式
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值