java基础(2)

1.final
1.当final修饰基本数据类型时,他们是编译时常量,编译后,在使用时直接替换为常量。
例如:

public static final int a = 1;
/*
*典型的对常量定义的方式
*public:可以被用于包之外
*static:不属于任何对象,强调只有一份
*final:修饰基本类型,表示该对象是一个常量
*/

2.当final修饰非基本数据类型时,表示该对象的引用不可变,但是该对象还是可以修改的。
例如:

public class JavaTest {
    //声明并初始化一个final修改的Subclass对象sub
     final Subclass sub = new Subclass();
    @Test
    public void finalTest(){
        //sub对象的引用为final修改,故不可变,不能重新赋值
        sub = new Subclass();//error
        //a为final修饰,不可变,不能重新赋值
        sub.a = "1234";//error
        //b没有final修饰,可变,能重新赋值
        sub.b = "1234";
    }

    //Subclass类,String不是基础类型!!!
    class Subclass{
        //a为final修饰
        public final String a = "123";
        //b为普通的String类型数据
        public String b = "123";
    }
}

3.当方法被final修饰时,不能被重写,锁定方法,以防任何继承类修改他的含义。

2.重写、覆写(override)和重载(overload)
1)重写、覆写(override)
指的是子类重写父类中相同方法的内容,是在子类和父类之间体现了多态性。
@override的作用

@Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处:
1、可以当注释用,方便阅读;
2、编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错。例如,你如果没写@Override,而你下面的方法名又写错了,这时你的编译器是可以编译通过的,因为编译器以为这个方法是你的子类中自己增加的方法。

2)重载
是指在同一类中,写多个方法名相同,但是参数类型或者个数不同的方法,是在同一类中体现多态性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值