子类继承父类的静态变量,当你在子类里修改静态变量的值,其父类的静态变量的值也会改变;子类继承父类的非静态变量,当你在子类里修改非静态变量的值,其父类的非静态变量的值不会改变。
1、静态变量
子类继承父类的静态变量,当你在子类里修改静态变量的值,其父类的静态变量的值也会改变。
//父类
public class Animal {
//静态属性
public static int Age=1;
};
//子类
public class Cat extends Animal{
//静态方法
public static void print(){
System.out.println("Animal:"+Animal.Age+"; Cat:"+Cat.Age);
};
//普通方法
public void say(){
System.out.println("Animal:"+Animal.Age+"; Cat:"+Cat.Age);
};
};
//测试类
public class text {
public static void main(String[] args) {
Cat c=new Cat();
c.say();
Cat.print();
System.out.println("改值后:");
Cat.Age=5;
c.say();
c.print();
}
};
2、非静态变量
子类继承父类的非静态变量,当你在子类里修改非静态变量的值,其父类的非静态变量的值不会改变。
//父类
public class Animal {
public int height=1;
};
//子类
public class Cat extends Animal{
//public int height=1;
public void setHeight(int _h){
this.height=_h;
};
public int getHeight(){
return height;
}
public void say(){
//子类的值
Animal a=new Animal();
System.out.println("Animal类:"+a.height+"; Cat类:"+this.height);
};
};
//测试类
public class numberMain {
public static void main(String[] args) {
Cat c=new Cat();
System.out.println("没修改前:");
c.say();
System.out.println("没修改后:");
c.setHeight(5);
c.say();
}
};