JAVA基础08接口+

    科技2022-07-11  92

    接口

    概念 如果这个抽象类中所有的方法都是抽象方法,那么就可以把这个类变成接口(接口不是类),类要与接口直接产生关系通过implements关键字产生了实现关系(类与接口),接口与接口直接有继承关系,类有接口是多实现,接口与接口是多继承,如果一个类实现了接口就要重写所有的抽象方法,如果不想都重写就变成抽象类 注意: ①.接口可以创建对象?不能,有构造方法所以创建不了对象 ②.接口与接口是多继承 interface A{ m(); } interface B{ n(); }

    interface C extends A,B---->m()和n()

    interface A{ void m(); } Interface B{ int m(); }

    就只能单继承

    java中所有类型的对象都可以多接口进行赋值,编译时期都没错,运行时期查看的是实际创建类与接口直接是否有实现关系

    接口中可以定义属性和方法? 可以定义属性,属性只能被public、static、final共同修饰, 可以定义抽象方法,默认被public、abstract共同修饰

    接口不是类,底层还是.class文件

    接口中是否都是抽象方法? 不一定 jdk1.7及其以前的版本中规定接口只能有抽象方法,jdk1.8版本及其以后接口中可以定义抽象方法和实体方法

    jdk1.8关于接口的新特性 ①.允许定义实体方法(default和static方法) ②.Lambda表达式—重写接口中的抽象方法(接口中只能有一个抽象方法) ③.接口中只有抽象方法就是函数式接口—函数式编程

    接口:模板 统一类形式

    内部类—

    概念-----类的结构的一种扩充分类 局部(方法)内部类 在方法中定义类,只能定义非静态的属性和方法,允许定义静态常量,可以继承和实现,不能被访问权限修饰符修饰,可以拿到外部类的所有属性和方法,只能拿到本方法的常量(隐式),创建对象只能在本方法中创建 成员内部类 在类中方法外的位置定义类,只能定义非静态的属性和非,允许静态常量,可以继承和实现、,可以被访问权限修饰符修饰,可以拿到外部类所有的属性和方法 静态内部类 在类中方法外的位置用static修饰的类,可以定义所有的属性和方法,允许定义静态常量,可以被访问权限修饰符修饰,可以继承和实现,只能拿到外部类的静态属性和方法 A.B.i A可以是对象,BA.B.i A 可以是对象,B是对象 i是B对象的属性 * A是类 B是对象 i 是B对象的属性 * A是外部类 B是静态内部类 i是内部类的静态属性 匿名内部类 可以被继承的类或者实现的接口,都可以具有匿名内部类的形式,匿名内部类最终做的事重写方法,匿名内部类优先使用一次,在方法中使用匿名内部类就和方法内部类使用一致,如果在类内方法外使用匿名内部类和成员内部类使用一致

    内部接口—(类中可以定义接口,接口中定义接口,内部的接口都要是静态的) 类中可以定义类或者接口,接口中可以定义类或者接口

    分类 声明包—package类的位置 首行而且只能一个 导入包----把不在一个位置的其他类导入 import其他类的位置 不在首行 有多个

    java(java源生包) .lang—使用的时候不需要导包,在程序启动的时候就会默认把lang包下所有的内容直接加载到方法区—核心类库 .util—用于操作类或者对象的工具 .applet—小型应用程序 .awt—窗口 .beans—类 .io—数据流 .math—简单的数学运算 .net—网络 .nio—高并发 .security–安全 .sql—操作数据库 .text—格式化 .time—时间和日期

    Javax(扩展包) org(第三方厂商)

    总结

    接口----抽象类中所有方法都是抽象方法就把抽象类变成接口 类与接口通过Impelments产生实现(多实现),接口与接口之间是多继承 接口不能创建对象(没有构造方法),接口可以与所有类型的对象进行直接赋值,没有编译检测,运行时期有实现关系就能执行,属性(public static final),

    jdk1.8新特性(可以定义实体方法(static 、default)、 Lambda表达式(重写接口中的抽象方法)、 函数式接口)

    内部类-----方法内部类(就是方法局部变量都是常量)----成员内部类(成员内部类对象的创建)----静态内部类(创建对象)--------匿名内部类(用于重写方法----类可以被继承或者接口可以被实现)

    包-----声明包、导入包-----java(lang包、util包)、javax、org

    Processed: 0.024, SQL: 8