Java-super

【1】super:指的是:  父类的

【2】super可以修饰属性,可以修饰方法; 

在子类的方法中,可以通过  super.属性  super.方法 的方式,显示的去调用父类提供的属性,方法。在通常情况下,super.可以省略不写:

在特殊情况下,当子类和父类的属性重名时,你要想使用父类的属性,必须加上修饰符super.,只能通过super.属性来调用

在特殊情况下,当子类和父类的方法重名时,你要想使用父类的方法,必须加上修饰符super.,只能通过super.方法来调用

在这种情况下,super.就不可以省略不写。

【3】super修饰构造器:

其实我们平时写的构造器的第一行都有:super()  -->作用:调用父类的空构造器,只是我们一般都省略不写

(所有构造器的第一行默认情况下都有super(),但是一旦你的构造器中显示的使用super调用了父类构造器,那么这个super()就不会给你默认分配了。如果构造器中没有显示的调用父类构造器的话,那么第一行都有super(),可以省略不写)

如果构造器中已经显示的调用super父类构造器,那么它的第一行就没有默认分配的super();了

在构造器中,super调用父类构造器和this调用子类构造器只能存在一个,两者不能共存:

因为super修饰构造器要放在第一行,this修饰构造器也要放在第一行:

【4】以后写代码构造器的生成可以直接使用IDEA提供的快捷键:

alt+insert

继承条件下构造方法的执行过程

1.package com.msb.test10;
2.
3./**
4. * @Auther: msb-zhaoss
5. */
6.public class Person {
7.    int age;
8.    String name;
9.
10.    public Person(int age, String name) {
11.        super();
12.        this.age = age;
13.        this.name = name;
14.    }
15.
16.    public Person() {
17.    }
18.}
1.public class Student extends Person {
2.    double height ;
3.
4.    public Student() {
5.    }
6.
7.    public Student(int age, String name, double height) {
8.        super(age, name);
9.        this.height = height;
10.    }
11.}

1.public class Test {
2.    //这是一个main方法,是程序的入口:
3.    public static void main(String[] args) {
4.        Student s = new Student(19,"feifei",160.8);
5.    }
6.}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值