final 和 abstract 关键字:

final关键字:

1.final:最终的

2.用来修饰:类、方法、变量

3.用来修饰类:表明此类不能声明子类。

比如:String、StringBuffer、StringBuilder

4.用来修饰方法:表明此方法不能被重写。

比如:Object类中getClass():获取创建当前对象所属的类

5.用来修饰变量:表明此"变量"是一个常量。即:一旦赋值,就不可更改

  • 5.1 final修饰的属性

    在哪些位置可以赋值:显式赋值;代码块中赋值;构造器中赋值

    特别的:static final共同修饰一个属性:全局常量。比如:Math的PI

  •  5.2 final修饰局部变量
    

例题:

//用final修饰形参
public class Something {
	public static void main(String[] args) {
		Other o = new Other();
		new Something().addOne(o);
	}

	public void addOne(final Other o) {//指的是o指向的地址不能在改变,o = null 也是错的
		// o = new Other();
		o.i++;
	}
}

class Other {
	public int i;
}

abstract关键字:

1.不能用来修饰属性、构造器、代码块。

2.abstract不能与private修饰的方法、final修饰的类或方法、static修饰的方法共用

3.abstract:抽象的

4.可以用来修饰:类、方法。

5.abstract修饰类:抽象类

  • 抽象类不可以实例化
  • 抽象类中一定有构造器,目的:为了子类对象实例化时要调用
  • 子类继承抽象类以后,如果重写了所有的抽象方法,则此子类就可以实例化。
  • 子类继承抽象类以后,如果没有重写所有的抽象方法,则此子类仍然是抽象类。

4.abstract修饰方法:抽象方法

  • 特点:没有方法体。此方法不能被任何结构调用
  • 一方面,抽象方法所在的类一定是抽象类。另一方面,抽象类中不一定有抽象方法。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值