Java_final修饰符

【1】修饰变量

Dog类:

package com.pyk.a;

public class Dog {
	int age;
	double weigth;
}

Test类:

package com.pyk.a;

public class Test {
	public static void main(String[] args) {
		final int A=10;//final修饰变量后,此变量就不可更改值了,这个变量也就变为了字符常量,约定俗成规定:名字大写
		//A=20;报错:不可以修改值
		
		
		final Dog d=new Dog();//final修饰引用数据类型,那么地址值不可以改变
		//d=new Dog();报错:地址值不可更改
		//d对象的属性依然可以改变
		d.age=10;
		d.weigth=12.8;
		
		//第3种情况
		final Dog d2=new Dog();//d2的地址不可变
		a(d2);
		//第4种情况
		b(d2);
	}
	public static void a(Dog d) {
		d=new Dog();//d2传进来,形参d就指向了d2指向的地址,但是d的指向可以变
	}
	public static void b(final Dog d) {
		//d=new Dog();//此处报错,因为d被final修饰了,所以指向不能改变了
	}
}

【2】final修饰方法

Person类:

package com.pyk.a;

public class Person {
	final public void eat() {//final修饰方法后,该方法就不能被子类重写了
		System.out.println("吃饭");
	}
}

Student类:

package com.pyk.a;

public class Student extends Person{
	/*public void eat() {
		super.eat();
	}*///报错:final修饰了父类的eat方法,因此在子类种该方法不能被重写
}

【3】final修饰类:

一旦一个类被final修饰,那里面的方法也没有必要用final修饰了(final可以省略不写)

Person类:

package com.pyk.a;

final public class Person {//final修饰类,该类不可被继承
	final public void eat() {
		System.out.println("吃饭");
	}
}

Student类:

package com.pyk.a;

/*public class Student extends Person{
	public void eat() {
		super.eat();
	}
报错:父类Person被final修饰,因此该类不能继承
}*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值