JAVA基础08 接口+

接口

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

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

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

就只能单继承

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

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

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

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

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

接口:模板 统一类形式

内部类

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

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

  1. 分类
    声明包—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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值