java + 继承

本文通过一个具体的Java案例,展示了如何实现类的继承,包括定义父类Person和子类Student,并在子类中重写和扩展父类的方法。此外,还介绍了如何在子类中使用super关键字来调用父类的构造方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Student.java 是子类

package com.company;

/**
 * Created by dllo on 17/5/8.
 */

//继承的关键字extends
public class Student extends Person {

//    private String name;
    //private :同类同包
//public :都可以
//    private String sex;
//    private int age;
     double score;
     String name;
    public Student() {
//        super(); 写不写都可以  系统默认给我们添加一个super
    }

    //注意: 当属性权限为private时,子类依然能继承
           //只不过没有权限直接访问

    //关键字
    //static - 用 static 声明的方法,需要由类名去调用 并且方法内不能使用this/super


    //final - 可修饰: 1) 变量 -> 只读,不能改变
                   //2) 方法 -> 不能被子类重写
                  // 3) 类 -> 不能被继承

    //@Override - 声明复写/重写的方法,可加可不加 当添加了系统会自动校验是否满足复写要求
    //            更多的使用场景是传递给使用者(如同事)信息,告知这是一个复写的方法

    public Student(String name, String sex, double score, int age) {

        //this - 先找自己的,没有的再找继承而来的父类的
//        this.name = name;
        //super - 直接去找从父类继承的部分
//        super.name = name;
//        this.age = age;
//        this.sex = sex;

        //调用继承来的父类的构造方法
        //用super去调用构造方法,必须写在第一句
        super(name, sex, age);

        this.score = score;
    }



    public void setScore(double score) {
        this.score = score;
    }

    public double getScore() {
        return score;
    }

    public void setInfo(){

        //super不光可以调用属性,还可以调用方法
        super.setInfo();
        System.out.println(score);

//        System.out.println(name);
//        System.out.println(age);
//        System.out.println(sex);

    }



//重载是发生在一个类里   重写是指方法内容的重写  根据自身的需求去考虑写方法的内容

}

Person.java 父类
package com.company;

/**
* Created by dllo on 17/5/8.
*/
public class Person {
String name;
String sex;
int age;

public Person() {
    // super(); 写不写都可以  系统默认给我们添加一个super
    super();
}
public Person(String name, String sex, int age) {
    // super(); 写不写都可以  系统默认给我们添加一个super
    super();
    this.name = name;
    this.sex = sex;
    this.age = age;
}

public void setName(String name) {
    this.name = name;
}

public String getName() {
    return name;
}


public void setSex(String sex) {
    this.sex = sex;
}

public String getSex() {
    return sex;
}

public void setAge(int age) {
    this.age = age;
}

public int getAge() {
    return age;
}

public void setInfo() {
    System.out.println(name);
    System.out.println(age);
    System.out.println(sex);

}

}

Main.java 调用方法
package com.company;

public class Main {

public static void main(String[] args) {

    Student stu = new Student("貂蝉", "女", 234, 23);
    stu.setInfo();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值