Java面向对象(下)

Java提供了final关键字来修饰变量、方法和类,系统不允许为final变量重新赋值,子类不允许覆盖父类的final方法,final类不能派生子类。

通过使用final关键字,允许Java实现不可变类,不可变类会让系统更加安全。

自动装箱就是可以直接把一个基本类型值赋给一个包装类实例。

==和equals方法

当使用==来判断两个变量是否相等时:

  • 如果两个变量是基本类型变量,且都是数值类型(不一定要求数据类型严格相同),则只要两个变量的值相等,就将返回true。
  • 对于两个引用变量,只有它们指向同一个对象是,==判断才会返回true。

抽象方法和空方法体的方法不是同一个概念。

  • public abstract void test();是一个抽象方法,它根本没有方法体,即方法定义后面没有一对花括号;
  • public void test(){}方法是一个普通方法,它已经定义了方法体,只是方法体为空,即它的方法体什么也不做,因此这个方法不可以使用abstract来修饰。

抽象类不能用于创建实例,只能当作父类被其他子类继承。

当使用abstract修饰类时,表明这个类只能被继承;当使用abstract修饰方法时,表明这个方法必须由子类提供实现(即重写)。而final修饰的类不能被继承,final修饰的方法不能被重写。因此final和abstract永远不能同时使用。

  • static和abstract不能同时修饰某个方法,但它们可以同时修饰内部类。
  • private和abstract不能同时修饰方法。

内部类比外部类可以多使用三个修饰符:private、protected、static--外部类不可以使用这三个修饰符。

Lambda表达式允许使用更简洁的代码来创建只有一个抽象方法的接口(这种接口被称为函数式接口)的实例。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值