继承中构造方法的访问特点与super关键字的三种用法

继承中方法的覆盖重写_应用场景

class Phone {
public void sendMessage(){
System.out.println("发短信");
}
public void call(){
System.out.println("打电话");
}
public void showNum(){
System.out.println("来电显示号码");
}
}

 

//智能手机类
class NewPhone extends Phone {
//重写父类的来电显示号码功能,并增加自己的显示姓名和图片功能
public void showNum(){
//调用父类已经存在的功能使用super
super.showNum();
//增加自己特有显示姓名和图片功能
System.out.println("显示来电姓名");
System.out.println("显示头像");
}
}
public class ExtendsDemo06 {
public static void main(String[] args) {
// 创建子类对象
NewPhone np = new NewPhone();
// 调用父类继承而来的方法
np.call();
// 调用子类重写的方法
np.showNum();
}
}

 

 

 

继承后的特点——构造方法 
  
当类之间产生了关系,其中各类中的构造方法,又产生了哪些影响呢?
首先我们要回忆两个事情,构造方法的定义格式和作用。
1. 构造方法的名字是与类名一致的。所以子类是无法继承父类构造方法的。
2. 构造方法的作用是初始化成员变量的。所以子类的初始化过程中,必须先执行父类的初始化动作。子类的构
造方法中默认有一个 super() ,表示调用父类的构造方法,父类成员变量初始化后,才可以给子类使用。代
码如下: 
/*
继承关系中,父子类构造方法的访问特点:
1.子类构造方法当中有一个默认隐含的"super()*调用,所以一定是先调用的父类构造,后执行的子类构造。2.子类构造可以通过super关键字来调用父类重载构造。
3. super的父类构造调用,必须是子类构造方法的第一个语句。不能一个子类构造调用多次super构造。总结:
子类必须调用父类构造方法,不写则赠送super(),写了则用写的指定的super调用,super只能有一个,还必须是第一个。*/
 
class Fu {
private int n;
Fu(){
System.out.println("Fu()");
}
} 

 

 

class Zi extends Fu {
Zi(){
// super(),调用父类构造方法
super();
System.out.println("Zi()");
}
}
public class ExtendsDemo07{
public static void main (String args[]){
Zi zi = new Zi();
}
}

 

 super关键字的三种用法
public class Fu {
    int num = 10;

    public void method(){
        System.out.println("父类方法");
    }
}
/*
/*
super关键字的用法有三种:
1.在子类的成员方法中,访向父类的成员变量。
2.在子类的成员方法中,访向父类的成员方法。
3.在子类的构造方法中,访问父类的构造方法。
*/
public class zi extends Fu {
        int num = 20;
        public zi(){
            super();
        }
        public void methozi(){
            System.out.println(super.num);
        }
        public void method(){
            super.method();
            System.out.println("子类方法");
        }
}

 

posted @ 2022-07-03 20:15  zj勇敢飞,xx永相随  阅读(25)  评论(0编辑  收藏  举报