Java中的super

java中的super指的就是父类,用到super的有以下几种情况:
1.当父类与子类存在相同的方法或成员变量时,子类中的成员变量或方法名优先级高,所以子类中的同名成员变量或方法就隐藏了超类的成员变量或方法,
但是我们如果想要使用超类中的这个成员变量或方法,就需要用到super
class S {
	public int value;
	public void m(){
		value=10;
		System.out.println("S"+value);
	}
}
class SS extends S{
	public int value;
	public void m() {
		super.m();
		value=20;
		System.out.println("SS"+value);
	}
}
public class S3{
	public static void main(String[] args){
		SS n1=new SS();
			n1.m();
		
	}
}
 

输出结果

S10
SS20 

2.存在构造函数时,如果调用super必须写在子类构造函数第一行,当没有显示的调用父类构造方法时(不用super)则调用基类无参数构造方法
class Person { 
   
   
    Person() { 
       System.out.println("Person"); 
    } 
    
    Person(String name) { 
       System.out.println("父类"+name); 
    }
} 
    
public class Chineseperson extends Person { 
    Chineseperson() { 
       super(); // 调用父类构造方法       
    } 
    
    Chineseperson(String name) { 
       super(name);// 调用父类具有相同形参的构造方法 
       System.out.println("子类"+name); 
    } 
    
    Chineseperson(String name, int age) { 
       this(name);// 调用具有相同形参的构造方法 
       System.out.println( age); 
    } 
    
    public static void main(String[] args) { 
       Chineseperson cn = new Chineseperson(); 
       cn = new Chineseperson("lili"); 
       cn = new Chineseperson("lucy", 18); 
    } 
}
 

 Person
父类lili
子类lili
父类lucy
子类lucy
18

 

猜你喜欢

转载自www.cnblogs.com/52circle/p/9004503.html