Java继承

本文详细解释了Java中的继承概念,包括子类如何继承父类的成员变量和方法,访问规则(优先级和super关键字),以及构造器的使用,特别强调了构造器中必须调用父类构造器的规则和this/super的区别。
摘要由CSDN通过智能技术生成

1.关键字:extends

        1.子类能够继承父类的非私有成员(成员变量,成员方法)

        2.子类的对象是由子类,父类共同完成的

        3.Java是单继承,非多继承,但可以多层继承

2.要点:

        1.在子类访问其他成员变量,方法

                1.先在子类范围找

                2.后在成员范围找

                3.如果想访问父类中与子类重名的成员,用super.父类成员变量/方法

        2.构造器

        1:任何class的构造方法中,第一行语句必须是调用父类的构造方法,即子类的构造器都会先调用父类的构造器,再执行自己,不写则会自动加上super();

        2:父类若没有无参构造器,子类就必须显式调用super()并给出参数去调用父类的有参构造器

        3:子类不会继承父类的构造方法。

3.使用:

public class Test {
    public static void main(String[] args) {
        System.out.println("lllllllllhello");
        Student s =new Student("le",12);
        System.out.println(s.getNames());
        System.out.println(s.getScore());


    }
}
class Person{
    protected String name;
    public Person(String name){
        this.name=name;
    }
    public void setNames(String names){
        this.name =names;
    }
    public String getNames(){
        return this.name;
    }
}
class Student extends Person{
    protected int score;
    public Student(String name, int score){
        super(name);
        this.score=score;
    }
    public int getScore(){
        return this.score;
    }
}

4.结果:

ps:调用兄弟构造器

格式this();

    public Man(int age) {
        this(age,666);
    }
    public Man(int age, int score) {
        this.age = age;
        this.score = score;
    }

第一个构造器会调用第二个构造器来给参数赋值,创建对象时若不传入score的实参,则会默认赋予score的值为666

this()语法与super()不能同时出现,因为他俩都需要放在构造器的第一行

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值