0
点赞
收藏
分享

微信扫一扫

【JavaSE】继承

奔跑的酆 2022-04-27 阅读 64
java

 

目录

1.为什么需要继承

2.继承的概念

3.继承的语法

 子类访问父类的成员变量和方法

4.super关键字

super的用法

子类的构造方法

静态代码块 实例代码块 构造方法的执行顺序


1.为什么需要继承

Java当中通过类对现实中的实体进行描述,而在我们的现实生活中,这些实体不是相互孤立的,而是彼此联系。

比如猫和狗

他们虽然属于两个不一样的实体,但是他们都属于动物,这一点就是他们的共性,继承正是把这些相同点归纳成同一个类,用来提取他们的共性。

当然他们也有自己独特的特点,他们的一些行为不全相同,有各自独特的特征

用代码描述:

public class Animal{
    String name;
    int age;
}
public class Dog extends Animal{
    void bark(){
        System.out.println(name + "汪汪汪~~~");
    }
}
public class Cat extends Animal{
    void mew(){
        System.out.println(name + "喵喵喵~~~");
    }
}

2.继承的概念

继承机制:是面向程序设计代码复用的手段,它允许保有原有类的特征的基础上,增加新功能

让某个类型的对象获得另一个类型的对象的属性的方法。

继承解决的问题是:共性的抽取,实现代码的复用

上述代码中,Animal类称为父类和超类,Dog和Cat称为Animal的派生类/子类

3.继承的语法

在Java中继承父类,需要借助extends关键字

1.子类会将父类的成员变量和成员方法继承到子类中

2.子类在继承父类之后,必须添加自己特有的成员,体现于基类的不用

3.Java不支持多继承,但是支持单继承 多层继承 不同类继承同一个类

 子类访问父类的成员变量和方法

--如果访问的成员变量或者方法子类中有,有限访问自己的变量

--如果访问的成员变量或者方法子类中无,则访问的是父类的成员变量或者方法,如果父类也无该方法,则编译会报错。

--如果同名,优先访问自己的,即子类会将父类覆盖(就近原则)

4.super关键字

问题:如果子类中存在与父类中相同的成员时,那如何在子类中访问父类相同名称的成员呢?

当子类域父类有相同的成员方法和变量,因为就近原则,子类会将父类覆盖

所以在Java中出现super关键字

super的用法

super可以直接引用父类的实例变量

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

2.可以直接调用父类的方法

3.super()可以用来调用父类的构造方法

this是当前对象的引用,当前对象即调用实例方法的对象,super相当于是子类对象中从父类继承下来部分成员的引用

 

注意:

1.只能在非静态方法中使用

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

子类的构造方法

1.在子类对象的构建是,需要先调用基类的构造方法,然后再执行子类的构造方法,有父才有子

如果子类的构造方法中无基类的构造方法,编译器会在子类构造方法中自动添加基类的构造方法

子类的构造方法中隐藏了一个super()

2.如果父类构造方法带参数,这编译器不会自动调用父类的构造方法,需要用户自己添加,否则会编译失败

3.使用super()调用父类的构造函数时,其必须放在首行

4.super()只能在子类的构造方法中出现一次,且不能与this同时出现

静态代码块 实例代码块 构造方法的执行顺序

举报

相关推荐

0 条评论