java中,子类能不能继承父类的所有方法和状态?

2024-12-29 09:43:58
推荐回答(4个)
回答1:

这个是考试题目吗?如果是个判断题,回答是 No 。
在java核心技术卷一,第五章继承,5.14节 “阻止继承:final类和final方法”。
如果类被 final 修饰了,那么是无法继承的,例如 api中的 String类。
如果方法被 final 修饰了,这个方法无法被继承(不能被覆盖)。
private修饰的成员也是无法被继承的。这个很好理解,private:私有。只提供给本类其他方法调用的,不暴露给本类以外的其他对象,自然不能被子类继承到。

回答2:

不可以。子类可以继承父类的方法和变量,但是有private ,final 关键字声明的变量或者方法,则不可以被子类所继承。

回答3:

这个继承的概念不知道害了多少人。
继承只是语言级别的概念。
继承是有限制意义的,Java中的不可被继承的含义就是不可访问(例如构造函数,Private 和final)但在其构建的子类堆内存中时包含所有数据的。具体的东西不是一句两句能说清楚的,其实真正决定Java一切的核心的是PC寄存器(想不到吧)。而在Java的内存模型中这块是被忽略的(因为SUN只发布了Java的语法规范,并不会告知你Jvm是怎么实现的)。楼主想完全知道全部过程需要阅读深入java虚拟机。和JVM规范,然后自己构造内存执行模型。等你明白这些了你会说TMD sun的Java是坑爹的,哈哈。

回答4:

当父类被修饰符private修饰时,或当final修饰的类时不能被子类继承,但是final用于修饰方法时,该方法能被继承