java String为什么不可继承
发布网友
发布时间:2022-03-28 22:45
我来回答
共5个回答
热心网友
时间:2022-03-29 00:15
String是final类型的,意味着其类不能被继承,方法不能被重写,这样才能更通用!如果设计成可继承,那么继承的子类就可以新增无数个自定义变量或方法,会造成很多不必要的麻烦,也可能造成代码的冗余!谢谢!有不对的地方,还请各位高手多多指教了。。。
热心网友
时间:2022-03-29 01:33
String是作为基本数据类型设计的,就像int什么的一样,所以不能继承
而且是传值的而不是传引用
如果可以继承,在处理传值传引用问题和副本构造等问题的时候就会造成不必要的麻烦。
比方String是传值的,你构造了一个类,是String的子类,按道理用户自定义类都是传引用的,但是你的父类确是传值,矛盾
热心网友
时间:2022-03-29 03:07
请看Sting是这样定义的:
public final class String extends Object,里边有final关键字,所以不能被继承。
热心网友
时间:2022-03-29 04:59
因为他是final的,所以不可继承,这个解释虽然简单,不过事实就是如此
热心网友
时间:2022-03-29 07:07
LZ可以看一下javaeye上的人对这个问题的理解
参考资料:http://www.javaeye.com/problems/13069
string类可以被继承吗
string是Java的一种数据类型。在Java中,string类的定义为“publicfinalclassStringextendsObject”,其中包含final关键字,属于被final修饰的类,所以不能被继承。String对象是动态对象,需要创建对象实例后才能引用它的属性和方法。在创建一个String对象变量时,可以使用new运算符来创建,也可以直接将字符串赋...
string类可以被继承吗
string类不可以被继承。string是Java的一种数据类型。在Java中,string类的定义为publicfinalclassStringextendsObject,其中包含final关键字,属于被final修饰的类,所以不能被继承。final类无法被继承,这使得JIT在处理字符串时可以进行各种优化——永远不需要检查被覆盖的方法。Java语言的特点 1、Java语言是...
String类是否能被继承
一,在Java中,只要是被定义为final的类,也可以说是被final修饰的类,就是不能被继承的。二,final是java中的一个关键字,可以用来修饰变量、方法和类。用关键词final修饰的域成为最终域。用关键词final修饰的变量一旦赋值,就不能改变,也称为修饰的标识为常量。如果一个类的域被关键字final所修饰...
在Java中String和toString有什么区别??
String是java的一个最终类,不能被继承的。它的作用是构造字符串,用法就是 String str = new String(),这样得到的是一个空字符串,String str = new String(“aa”),这样就得到一个通过构造函数构造的字符串“aa”,当然为了方便java允许像基本类型那样使用,就是String s = "aa" 。toString()...
java建构函式能否被继承,为什么?
java建构函式能否被继承,为什么? 不能,因为子类继承父类的时候,先执行父类建构函式;具体的说就是执行父类时就会先“呼叫”父类的建构函式,注意“呼叫”和继承不是一个含义,实质上是“自动执行”。 继承(extends)的含义其实是“扩充套件”,子类完全没必要扩充套件父类的建构函式,因为反正每次调子类的时候都会...
java中String, StringBuffere,StringBuilder, StringTokenizer的区别是什...
1、String类是final的,不可被继承。public final class String。2、String类的本质是字符数组char[],并且其值不可改变。private final char value[];3、String类对象有个特殊的创建方式,如String x="abc"; "abc"就表示一个字符串对象,而x是"abc"对象的地址,叫做"abc"引用。4、Java运行时会...
Java 中 String 、StringBuffer、 StringBuilder的区别
先说Java String 对一串字符进行操作。不可变类。StringBuffer 也是对一串字符进行操作,但是可变类 是对象不是原始类型.为不可变对象,一旦被创建,就不能修改它的值.对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.String 是final类,即不能被继承.是一个可变对象,当对...
java中set<string>类型的东西是什么?如何将一个string类型的字符串...
Set是集合的意思,是同种对象的集合,<String>说明这种对象都是String类型的对象。可以这样:Set<String> set = new HashSet<String>();String s1 = "hello";String s2 = "world";set.add(s1);set.add(s2);这样就添加了两个元素。
在java中String类为什么要设计成final
另外,如果指定一个类为final,则该类所有的方法都是final。Java编译器会寻找机会内联(inline)所有的final方法(这和具体的编译器实现有关)。此举能够使性能平均提高50%。示例:如果String 不是final 那么就可以继承 那我们的 main也就可以写成 public class Test { public static void main(String2[...
...Map<String,Integer>{...} 在java中可以这样继承容器? 请解释下...
这个是可以的,java中最多能继承一个类,但是可以实现多个接口(Interface)前题是被继承的类不是final修饰的,比如,你写个类去继承String类就不行,因为String类的申明是被final修饰的!又如我们申明一个类 public final class Super{} Super就不能被其他类所继承 public class Son extends Super{}//...