接口和内部类

  • 接口interface

特殊的抽象类,引用数据类型,抽象功能的集合,接口可以多实现。 实现解耦,低耦合。

继承  子类直接使用父类的属性和方法,可以不用重写

接口  拥有了接口内的功能,抽象功能,必须重写,才能使用。

使用:接口不能实例化,需要通过实现类来实现。

一个类先继承父类,在连接接口。

类和接口,只能类实现接口,可以连多个接口。

接口和接口,只能继承不能实现,一个接口可以继承多个接口。

通过具体的实现类来实现接口。

具体实现类, 重写所有抽象方法,按需新增。

抽象实现类, 按需重写抽象方法,按需新增。

JDK1.8新增

静态方法 public static void   方法名(){}  可以通过接口名来调用。

默认方法 public default void 方法名(){}    只能通过实现类对象调用。

接口多态

接口名 变量名=new 实现类名()  不可以调用实现类中新增的方法,如果实现类中有重写方法调用重写方法。

  • 内部类

类中定义类

成员内部类,私有内部类,静态内部类

局部内部类,匿名内部类

成员内部类:

定义在内中的成员位置,具有类的特点,可以继承可以连接接口。可以被修饰

注意:1.成员内部类中可以直接调用外部类成员的属性和方法。

  1. 成员内部类中不可以定义静态内容,除了静态常量。
  2. 外部类,可以通过创建成员内部类的对象,调用成员内部类的属性和方法。
  3. 通过外部类创建成员内部类的对象,通过成员内部类的对象调用。

外部类名.内部类名 变量名=外部类名.new 内部类名();

私有内部类:

不可以在其他类中调用,只能在当前外部类。

区分相同名字的变量: 外部类名.this.    内部类this.   局部

静态内部类

  1. 静态内部类中可以定义静态内容。
  2. 在静态内部类中可以直接使用外部类的静态内容,通过外部对象调用成员内容。
  3. 在外部类中,通过静态类名.直接调用静态内部类中静态内容,通过静态内部类对象调用,内部类成员内容。
  4. 在其他类中,可以通过外部类.内部类 找到静态内部类,创建内部类对象调用其成员内容。

局部内部类

  1. 定义在方法内,可以定义成员内容,不可以定义静态内容。
  2. 只能在局部类内部,通过对象访问成员内容。
  3. 可以使用方法内的局部变量,可以使用外部类的成员变量。
  4. 如果在局部类内部使用了,方法内的局部变量,Jdk1.8以后默认加final。

匿名内部类

实现类自己本身没有作用的

  • Lambda表达式

写法1 ()->{}

写法2  方法体只有1句输出语句 ()->     {}可以省略

写法3  方法存在参数,参数类型可以省略 (name,age)->

写法4  方法存在一个参数,  name->                       ()可以省略

写法5  方法存在一句输出语句且为return   age->age      {return}可以省略

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值