super.属性名 访问父类的属性,但不能访问父类的private属性
super.方法名(参数列表) 访问父类的方法,但不能访问父类的private方法
super(参数列表) 访问父类的构造器 只能放在构造器的第一句,只能出现一句
package www.guitar.form;
public class Animal { //父类
private String name;
public int age;
public Animal(String name,int age){//有参构造器
System.out.println("父类的有参构造器被调用");
this.name = name;
this.age = age;
}
public Animal(){//无参构造器
System.out.println("父类的无参构造器被调用");
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public void cry(String name){
System.out.println("hello,word"+" "+name);
}
}
package www.guitar.form;
public class Dog extends Animal {
public Dog(){
super();//访问父类的无参构造器
System.out.println("子类的无参构造器被调用");
}
public Dog(String name){
super("jack",10);//访问父类的有参构造器
System.out.println("子类的带一个参数有参构造器被调用");
}
public void hi(){
System.out.println(super.age);//访问父类的private属性
System.out.println(super.getName());//如果想要访问父类的私有属性,需要调用父类提供的公共方法
super.cry("jack");
}
}
package www.guitar.form;
public class super01 {
public static void main(String[] args){
Dog dog = new Dog();
System.out.println();
Dog dog1 = new Dog("jack");
}
}