• 让天下没有难学的技术
    多数学员都来自推荐,这就是口碑的力量

string 类能被继承吗,为什么?

继承是Java 语言的主要特性之一,对于JDK 中提供的类,程序员也可以继承,进而添加新的属性或方法,但并不是所有JDK 中的类都可以继承,那么String 类可以被继承吗?

专家解答

众所周知,被final 关键字修饰的类是不可以被继承的,没有被final 关键字修饰的类则可以被继承,可以派生新的子类,而String 类是使用final 关键字修饰的类,所以它不能被继承。

专家点评

本题考查两个知识内容:一个是被final 修饰的类不能被继承,另一个是String 类为final类。要解决本题,这两点缺一不可。

根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。
final类不能被继承,没有子类,final类中的方法默认是final的。
final方法不能被子类的方法覆盖,但可以被继承。
final成员变量表示常量,只能被赋值一次,赋值后值不再改变。
final不能用于修饰构造方法。
注意:父类的private成员方法是不能被子类方法覆盖的,因此private类型的方法默认是final类型的。

如果一个类不允许其子类覆盖某个方法,则可以把这个方法声明为final方法。
使用final方法的原因有二:
第一、把方法锁定,防止任何继承类修改它的意义和实现。
第二、高效。编译器在遇到调用final方法时候会转入内嵌机制,大大提高执行效率。

发表评论

邮箱地址不会被公开。 必填项已用*标注