#JAVA#面向对象(final关键字)

#JAVA#面向对象(final关键字)

package final关键字;
/*
 	继承的代码体现
 	
 	由于继承中方法有一个现象:方法重写
 	所以,父类的功能,就会被子类给覆盖掉
 	有些时候,我们不想让子类去覆盖掉父类的功能
 	针对这种情况,java提供了一个关键字:final
 	
 	final:最终的意思,常见的是它可以修饰类、方法、变量
 */
class Fu{
	public final void show() {
		System.out.println("这里是绝密资源,任何人都不能修改");
	}
}
class Zi extends Fu{
	/*Zi中的show()无法覆盖Fu中的show(),所以无法重写
	public void show() {
		System.out.println("这是一堆垃圾");
	}
	*/
}
class ZiDemo {
	public static void main(String args[]) {
		Zi z=new Zi();
		z.show();
	}
}

package final关键字;
/*
 	final可以修饰类,方法,变量
 	特点:
 		final修饰类:该类不能被继承
 		final修饰方法:该方法不能被重写
 		final修饰变量:该变量不能被重新赋值,因为这个变量就是常量
 	常量:
 		A:字面值常量
 			“hello”,10,ture
 		B:自定义常量
 			final int x=10;
 */
//final class Fu    错误(final修饰的类叫最终类,最终类无法被继承)
class Fu{
	public int num=10;
	public final  int num2=20;
	/*
	public final void show() {   
		
	}
	*/
}
class Zi extends Fu{
	public void show() {
		num=100;
		System.out.println(num);
		//num2=200;错误
		System.out.println(num2);
	}
}
class FinalDemo {
	public static void main(String args[]) {
		Zi z=new Zi();
		z.show();
	}
}

package final关键字;
/*
 	final修饰局部变量的问题
 		基本类型:基本类型的值不能发生改变
 		引用类型:引用类型的地址值不能发生改变,但是,该对象的堆内存的值是可以改变的
 */
class Student{
	int age=10;
}
class FinalTest {
	public static void main(String args[]) {
		//局部变量是基本数据类型
		int x=10;
		x=100;
		System.out.println(x);
		final int y=10;
		//y=100;错误,无法为最终变量y分配值
		//System.out.println(y);
		
		//局部变量是引用数据类型
		Student s=new Student();
		System.out.println(s.age);
		s.age=100;
		System.out.println(s.age);
		System.out.println("------");
		final Student ss=new Student();
		System.out.println(ss.age);
		ss.age=100;  //合法,但是地址值不能变
		System.out.println(ss.age);
		//重新分配内存空间
		//ss=new Student();错误
	}
}

package final关键字;
/*
 	final修饰变量的初始化时机
 		A:被final修饰的变量只能赋值一次
 		B:在构造方法完毕前(非静态常量)
 */
class Demo{
	//int num=10;
	//final int num2=20;
	
	int num;
	final int num2;
	
	public Demo() {
		num=100;
		num2=200;
	} 
}
class FinalTest {
	public static void main(String args[]) {
		Demo d=new Demo();
		System.out.println(d.num);
		System.out.println(d.num2);
	}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值