class a
{
int i=0;
}
class b extends a
{
int i=1;
}
如上两个类,我问一下。
b是不是可以继承a中的i?
还问一下,两个类中都有i,这个叫什么啊?覆写?重载?
{
int i=0;
}
class b extends a
{
int i=1;
}
如上两个类,我问一下。
b是不是可以继承a中的i?
还问一下,两个类中都有i,这个叫什么啊?覆写?重载?
调试欢乐多
A类中的i是A类中的i,B类中的i是B类中的i,他俩原先没有任何关系。
当B类继承了A类后,他俩还是没有任何关系。只不过在B类中可以引用A类(父类)中的i罢了。
-------------------------------------------------------------------------------
public class A { int i = 6;
}
---------------------------------------------------------------------------------
public class B extends A { int i = 5; int a = 0; B() { a = super.i;
} public static void main(String[] args) { B b = new B(); System.out.println("我是A类的i: " + b.a); System.out.println("我是B类的i: " + b.i);
}
}
------------------------------------------------------------------------------------------------------
另外:隐藏的另一个情况是:static 类型的方法。
不对. 属性是类作为一种对象规范的描叙.类既然是一种模板那么属性就是这个模板的结构.
贴中http://topic.csdn.net/u/20080419/15/5a1339a9-8af3-4fe3-ac30-f7f6e379d88f.html
有这个问题的讨论。
如:父类中的private void f1()方法,子类是不能继承的(但要注意:子类对象中包含有一份完整的父亲对象)。这就是整个事件的理解。
属性没有继承和重载的说法!
</font>
我理解i是可被继承的,但子类i在此屏蔽父类i,故子类中要用super.i调用父类i。
如果子类调用i,如果他没有i则调用父类中的i。
给分吧
new b()的对象使用的是b中的i
如果想用a中的i在b中定义一个方法用super.i访问
但是就本题而言,"int i"只不过是定义了一个变量,不是什么方法,所以他们是没有直接关系的。
如果把你的程序修改成:
class a
{
void a(){
}
}
class b extends a
{
void a(){
}
}
这时候就有关系了
但是就本题而言,"int i"只不过是定义了一个变量,不是什么方法,所以他们是没有直接关系的。
如果把你的程序修改成:
class a
{
void a(){
}
}
class b extends a
{
void a(){
}
}
这时候就有关系了
A类中的i和B类中的i没有关系,不是覆盖也不是重载。
A类中的i是A类中的i,B类中的i是B类中的i,他俩原先没有任何关系。
当B类继承了A类后,他俩还是没有任何关系。只不过在B类中可以引用A类(父类)中的i罢了。
-------------------------------------------------------------------------------
public class A { int i = 6;
}
------------------------------------------------------------------------…
[/Qoute]
同意,两者没有任何关系!9楼的程序可以说明!!
因为这两个只是变量,所以不存重写的问题
但是如果是方法的话,搂主就需要好好看了
如果程序改成
class a
{
void a(){
}
}
class b extends a
{
void a(){
}
}
那么在这种情况下就是重写的问题了
呵呵呵
希望搂主早日解决这些概念问题