美文网首页
多态——匿名内部类——lambda

多态——匿名内部类——lambda

作者: 天天剁手狂狂狂 | 来源:发表于2021-01-29 08:59 被阅读0次

1、多态

1.1多态的概念

1.父类引用指向子类对象
2.一对象多种状态

1.2前提

有继承或者实现

1.3代码形式

父类类型 变量名=new 子类类名();

1.4成员访问的特点(重点掌握!!)

成员变量 :编译,运行都看左边(父类)
成员方法:编译看左边,运行看右边;

优点缺点

优点:提高代码的扩展性,一个父类参数可以接受多个子类
缺点:不能使用子类特有的方法,想使用子类方法需要强制转换,向下转型;可以用instanof 先判断,防止不是父类报错

2、内部类

2.1类型 :

成员内部类 局部内部类

2.2注意

内部类可以访问,外部类的成员变量,包括private都可以访问
想变量名相同可以用 外部类名.this.变量名;
A.this.a;
class Outside{ private int a = 100; class Inside{ private int a = 200; public void show(){ int a = 300; System.out.println(__**Outside.this.a**_______);//100 System.out.println(____**Inner.this.a**_______);//200 Ssytem.out.println(_____a______);//300 } } }

3、匿名内部类

new 父类或接口(){
重写父类或接口的方法;
};
前提是有继承或者实现
等于直接用父类或者接口实现了一个类,但是没有名字,直接重写了父类或者接口的方法,

Snipaste_2021-01-28_21-28-07.png

4、lambda表达式

4.1概述
lambda是java在jdk8开始新增的一种语法,这种语法允许我们在调用带有接口类型的形参的方法时,使用lambda作为方法的实参使用;(lambda是需要根据调用的场景自动进行推导的)


4.2使用限制
必须方法的形参是有接口类型,并且接口中有且只有一个抽象方法


4.3语法

(参数列表)->{方法体;return 返回值;}
lambda必须作为方法的实参使用;


4.4省略规则

Snipaste_2021-01-29_08-55-43.png
4.5和内部类区别
Snipaste_2021-01-29_08-57-40.png

4.6 lambda表达式就是 调用方法中是一个接口类型,由于接口没有实现方法,所以在调用的时候实现了这个类,lambda 就可以看作这个类的实例化,也就是方法中的实参,debug可以看到先的构造过程,调用方法执行接口的方法时,再真正使用lambda中的方法体,
(参数列表)->{方法体,有返回值时,加return;}
调用方法(lambda);
被调用的方法体中的形参是接口类型
接口中一个抽象方法

相关文章

  • 多态——匿名内部类——lambda

    1、多态 1.1多态的概念 1.父类引用指向子类对象2.一对象多种状态 1.2前提 有继承或者实现 1.3代码形式...

  • Kotlin之Lambda表达式和成员引用

    Lambda介绍:作为函数参数的代码块 用匿名内部类实现监听器 现在用Kotlin的Lambda表达式来替换匿名内...

  • 2020-07-04【Lambda】

    Lambda标准格式 Lambda省略模式 Lambda注意事项 Lambda表达式和匿名内部类的区别

  • Java8 Lambda表达式

    1.替代匿名内部类 使用匿名内部类 使用lambda表达式 2.使用lambda表达式对集合进行迭代 3.使用la...

  • Lambda表达式

    本章节主要介绍lambda表达式简化匿名内部类的写法,但lambda表达式不能取代所有的匿名内部类,只能用来取代函...

  • Lambda表达式-03-02

    外部类实现线程接口: 内部类实现线程接口: 匿名内部类: jdk8的Lambda表达式:

  • Lambda表达式和匿名内部类-001

    前言 Java Lambda表达式是匿名内部类的语法糖,它可以简化和取代匿名内部类,JVM内部是通过invoked...

  • Lambda表达式-匿名内部类的区别-002

    Lambda表达式和匿名内部类在JVM中处理的方式是不一样的 匿名内部类实现 匿名内部类仍然是一个类,只是不需要程...

  • Lambda

    Lambda表达式 Lambda表达式其实是一个匿名函数,是对匿名内部类的一种简化 Lambda表达式是函数式编程...

  • Java 8新特性

    Lambda表达式与Functional接口 Lambda表达式 可以认为是一种特殊的匿名内部类lambda只能用...

网友评论

      本文标题:多态——匿名内部类——lambda

      本文链接:https://www.haomeiwen.com/subject/dfnxtltx.html