100天代码提升计划-第13天

继承(三)

继承的典型应用

代码

父类

 1 package Demo05;
 2 
 3 public class Phone {
 4    public void call(){
 5        System.out.println("打电话");
 6    }
 7    public  void send(){
 8        System.out.println("发短信");
 9    }
10    public  void  show(){
11        System.out.println("显示号码");
12    }
13 }

子类

 1 package Demo05;
 2 
 3 public class Newphone extends Phone {
 4 
 5     @Override
 6     public void show() {
 7         super.show();
 8         System.out.println("显示头像");
 9         System.out.println("显示姓名");
10     }
11 }

 

主方法

 1 package Demo05;
 2 
 3 public class Zphone {
 4     public static void main(String[] args) {
 5         Phone phone=new Phone();
 6         phone.call();
 7         phone.send();
 8         phone.show();
 9         System.out.println("===============");
10         Newphone newphone=new Newphone();
11         newphone.call();
12         newphone.send();
13         newphone.show();
14     }
15 
16 
17 }

 

二、构造方法特点

1.子类构造方法中默认有一个super(),所以先执行父类在执行子类(无父没有子)-----无参构造

package Demo05;

public class Fu {
    public Fu(){
        System.out.println("父类无参构造方法");
    }
}
package Demo05;

public class Zi extends Fu {
    public Zi(){
        System.out.println("子类无参构造方法");
    }
}
package Demo05;

public class Fuandzi {
    public static void main(String[] args) {
        Zi zi =new Zi();

    }
}

 

 

 

2.可以通过super()调用父类重载构造

package Demo05;

public class Fu {

    public Fu(){
        System.out.println("父类无参构造方法");
    }
    public Fu(int num){
        System.out.println("父类有参构造方法");
    }
}
package Demo05;

public class Zi extends Fu {
    public Zi(){
        super(10);
        System.out.println("子类无参构造方法");
    }
}
package Demo05;

public class Fuandzi {
    public static void main(String[] args) {
        Zi zi =new Zi();

    }
}

 

 

 

3.super()父类的构造调用,必须是子类构造方法的第一个调用语句

 

 

三、super关键字的用法

1.在子类的方法中,访问父类的成员变量

2.在子类的成员方法中访问父类的成员方法

3.在子类的构造方法中访问父类的构造方法

代码

package Demo05;

public class Fu {
    int num=10;
    public void method(){
        System.out.println("父类成员方法");
    }
    public Fu(){
        System.out.println("父类无参构造");
    }
}
package Demo05;

public class Zi extends Fu {
    int num=20;
    public  void methodzi(){
        System.out.println(super.num);//调用父类的num
    }
    public void method(){
        super.method();//调用父类成员方法
        System.out.println("子类成员方法");
    }
    public Zi(){
        super();//调用父类无参构造
        System.out.println("子类无参构造");
    }
}
package Demo05;

public class Fuandzi {
    public static void main(String[] args) {
        Zi zi =new Zi();
        System.out.println("=============");
        zi.methodzi();
        System.out.println("=============");
        zi.method();

    }
}

 

posted @ 2022-03-15 23:35  软测成长者  阅读(23)  评论(0)    收藏  举报