java default 对象名.成员变量

class Preson {
int i = 1;
}
class Student extends Preson {
int super.i = 8; // 这句话是把父类的i改成8吗? 可是编译报错.// default修饰符 子类是不可以修改父类的i的 是吗??
int c = 0;
}
public class Test {
public static void main(String[] args) {
Student s = new Student();
s.c; //我已经new了一个s对象出来了. 用 对象名.成员变量 不是应该可以的吗 为什么又报错啊?
}
}
int super.i 这里不是更改值,首先super. 这种形式是要调用父类的方法或获取父类属性的值,你哪有拿出值当变量的念庆,类似定义变量 int 1 = 0;这形式不感觉很恶搞吗..

下面的s.c 赋值即可,好判乎比你直接在仔冲握代码中写11 ,然后没任何操作,这说不过去了
比如
public static void main(String[] args){
11;
}
public class Test2 {
public static void main(String[] args) {
Student s = new Student();
//我已经new了一个s对象出来了. 用 对象名.成员变量 不是应该可以的吗 为什么又报错啊?
//引用宏手了要把它赋个一个变量
int sc = s.c;
}
}
class Preson {
int i = 1;
}
class Student extends Preson {
int c = 0;
// 这句话是把父类的i改成8吗? 可是编译报错.// default修饰符 子类是不可以修改父类丛枝的蔽郑嫌i的 是吗??
//super要用在构造器中
public Student() {
super.i = 8;
}

}
这样就可以了
1.子类继承父类,会继承父类的属性和方告液法,i 是父类的属性,在父类中己经声明,在子类中int super.i = 8; 会造成重复声败皮明,因此报错。

2.在main方法中 s.c; 这只是一个表达式,袜枯物不构成一行有效语句
报错是因为父类里的i成员变量没有任何修饰的情况下是不能在子类里被调用的
而且也不能int super.i 这时尺氏违反规则的
可以把i的陵亏散修饰词变为空中public 或者变为private 后加入get()和set()方法,在实例化子类以后向子类中set()相应的数值。
public class answer {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
catson cs=new catson();
System.out.println(cs.age);
}
}
class cat{
public int age=1;
}
class catson extends cat{
public catson(){
super.age=8;
}

}
你说的没错,但是成员变量为什么要用super修饰呢,如果你在子陪乎虚类中同样使用int i声明变量,芦燃那么子类的i就覆盖了父类的i,super是在方法中调顷前用的。
你s.c是构文错误,把语句写全 比如s.c=5;或者System.out.printlin(s.c);
class Preson {
int i = 1;
}
class Student extends Preson {
int i = 8; /液兆陵信/闹汪租
int c = 0;
}
public class Test {
public static void main(String[] args) {
Student s = new Student();
int d;
d=s.c; //
System.out.println(s.i);
}
}
就改了2个地方 单独的s.c可能不是语句。
int super.i = 8; 这个是什么意思?
如果族颤要使滑穗前用父类的i 直接super.i即可 为什么要在加个int
还有就信清是super的用法