每日学习-Java基础(十)接口与继承8(final)

一、final
1、概述
// final-最终修饰符
// 修饰类、方法、基本数据类型变量、引用时有不同的含义

2、final-类
// final 修饰类,该类是最终类,不能被继承

package ia8_final;

public final class Hero {
	public String name; // 英雄名称
	protected float hp; // 血量
	protected float armor; // 盔甲
	protected int moveSpeed; // 移动速度
}

// ADHero继承Hero时报错
// The type ADHero cannot subclass the final class Hero

每日学习-Java基础(十)接口与继承8(final)_第1张图片
3、final-方法
// final 修饰父类成员方法,该方法不能被子类重写

package ia8_final2;

public class Hero {
	public String name; // 英雄名称
	protected float hp; // 血量
	protected float armor; // 盔甲
	protected int moveSpeed; // 移动速度
	
	public Hero() {
		System.out.println("Hero无参构造方法");
	}
	
	public Hero(String name) {
		this.name = name;
		System.out.println("Hero有参的构造方法");
	}
	
	// final-方法
	public final void useItem(Item i) {
		i.effect();
	}
	
	public static void main(String[] args) {
		new Hero();
	}
}

// ADHero继承Hero时不能重写useItem()方法
// Cannot override the final method from Hero

每日学习-Java基础(十)接口与继承8(final)_第2张图片
4、final-基本数据类型
final修饰基本数据类型的变量,在变量章节提到过。详见链接。
https://blog.csdn.net/weixin_41117393/article/details/103147359
// final修饰基本类型变量,表示该变量只有一次赋值机会

package ia8_final3;

public class Hero {
	protected String name;
	protected float hp;
	protected int armor;
	protected int moveSpeed;

	public static void main(String[] args) {
		final int a = 10;
		// a = 8; // 报错

		final int b;
		b = 1;
		// b = 2; // 报错
	}
}

// 再次赋值报错
// The final local variable a cannot be assigned. It must be blank and not using a compound

每日学习-Java基础(十)接口与继承8(final)_第3张图片
5、final-引用
// final修饰引用,表示该引用只有一次指向对象的机会

package ia8_final3;

public class Hero {
	protected String name;
	protected float hp;
	protected int armor;
	protected int moveSpeed;

	public static void main(String[] args) {
		final Hero h;
		h = new Hero();
		// h = new Hero(); // 报错
	}
}

// 指向另一对象报错
// The final local variable h may already have been assigned

每日学习-Java基础(十)接口与继承8(final)_第4张图片
二、练习
尝试写一个类,让它继承String类,试试可不可以,String.class会告诉你答案。

我的学习源泉:https://how2j.cn/k/interface-inheritance/interface-inheritance-final/313.html?p=114999
Java自学网站:https://how2j.cn?p=114999

你可能感兴趣的:(Java,java,interface)