文章目录
article
多态
AI文章摘要
qwen-turbo-latest
加载中...
Java多态
函数重载
和C++一致
函数重写
Java的类方法相当于C++的虚函数, abstract修饰的类方法时相当于C++的纯虚函数, 拥有抽象方法的类是抽象类 打印函数其实接收的是Obeject类, 父类指针指向子类对象, 这里使用了多态, 然后调用了父类的toString方法
对象转型
instanceof
语法糖
可以使用Java提供的匿名内部类进行类继承与接口实现,当匿名内部类需要访问外部变量时,这个变量应该被final修饰
MyClass myObject = new MyClass(){ /*子类定义*/ }
MyInterface myObject = new MyInterface(){ /*实现类定义*/ }
若接口是函数式接口,那该接口可以通过Lambda表达式实现并实例化。
MyInterface myObject = (arg1, arg2, ...) ->{/*函数式接口中方法的定义*/}
- Lambda能捕获局部对象的引用
- 若接口的参数的类型是固定的或泛型可以根据形参推导, 则可省略参数类型
- 若接口只有一个参数则可以省略()
- 若代码体只有一行代码则可以省略{} 、分号以及return, 返回值就是这行代码的返回值
当函数式接口的方法返回值和参数列表和已知的方法相同时, 可以通过方法引用
- 非静态方法引用
类对象::非静态方法
,注意类对象必须已经存在, 注意类中this和super也是可以用的 - 静态方法引用
类::静态方法
,注意类必须已经存在 - 构造方法引用
类::new
基本数据类型[]::new
自动匹配构造器