Java中是否可以继承String类,为什么
2018-02-27 14:49
344 查看
答案是:不能被继承,因为从string的源码可以看出来,如下:public final class String
implements java.io.Serializable, Comparable<String>, CharSequence {...关于final修饰符,介绍如下:
根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。
final类不能被继承,没有子类,final类中的方法默认是final的。
final方法不能被子类的方法覆盖,但可以被继承。
final成员变量表示常量,只能被赋值一次,赋值后值不再改变。
final不能用于修饰构造方法。
注意:父类的private成员方法是不能被子类方法覆盖的,因此private类型的方法默认是final类型的。如果一个类不允许其子类覆盖某个方法,则可以把这个方法声明为final方法。
使用final方法的原因有二:
第一、把方法锁定,防止任何继承类修改它的意义和实现。
第二、高效。编译器在遇到调用final方法时候会转入内嵌机制,大大提高执行效率。
这个问题经常在面试的时候提到,很容易被忽视!
implements java.io.Serializable, Comparable<String>, CharSequence {...关于final修饰符,介绍如下:
根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。
final类不能被继承,没有子类,final类中的方法默认是final的。
final方法不能被子类的方法覆盖,但可以被继承。
final成员变量表示常量,只能被赋值一次,赋值后值不再改变。
final不能用于修饰构造方法。
注意:父类的private成员方法是不能被子类方法覆盖的,因此private类型的方法默认是final类型的。如果一个类不允许其子类覆盖某个方法,则可以把这个方法声明为final方法。
使用final方法的原因有二:
第一、把方法锁定,防止任何继承类修改它的意义和实现。
第二、高效。编译器在遇到调用final方法时候会转入内嵌机制,大大提高执行效率。
这个问题经常在面试的时候提到,很容易被忽视!
相关文章推荐
- Java中是否可以继承String类,为什么
- Java中是否可以继承String类,为什么
- Java中是否可以继承String类,为什么
- Java - 是否可以继承String类?
- java中String类是否可以被继承
- JAVA静态方法是否可以被继承?
- 匿名内部类是否可以继承其它类是否可以实现接口 _JAVA面试题及答案
- 牛客网Java刷题知识点之Java为什么不能支持多继承,但可以用接口来间接实现多继承
- java 接口之多继承,类为什么不可以多继承
- 为什么Java语言中,类与类之间只能单根继承,类与接口可以多重实现,接口与接口却多根继承
- C#中是否可以继承String类
- 是否可以继承String类?
- String类是否可以继承?
- Java中子类是否可以继承父类的static变量和方法而呈现多态特性
- Anonymous Inner Class(匿名内部类)是否可以继承其它类?是否可以实现接口?【Java面试题】
- 【Java面试题】60 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法?
- Java中子类是否可以继承父类的static变量和方法而呈现多态特性
- java中的接口为什么可以多继承,而其他类则不能实现多继承
- Java - Anonymous Inner Class(匿名内部类)是否可以继承其它类?是否可以实现接口?
- JAVA静态方法是否可以被继承?