JAVA继承复习小节

一、继承概念

1、继承是面向对象中的特性之一,能有效实现程序的复用。使用关键字extends实现
2、在继承关系中:
<1>子类可以得到父类的非私有属性和方法,这是从父类继承来的
<2>子类可以添加新的属性方法,添加父类所没有的
<3>子类可以重新定义父类的属性和方法,为自己所用

public class StudentTest {
    public static void main(String[] args) {
        Student s1 = new Student();

        s1.name="小明";
        s1.age=50;
        s1.cid=2021523;
        System.out.println("我是"+s1.name+"今年"+s1.age+"岁,"+"学号是:"+s1.cid);

        s1.eat();
        s1.working();
    }
}
class Person{
    String name;
    int age;

    public void eat(){
        System.out.println("干饭中...");
    }
}
class Student extends Person {
    int cid;//学号

    public void working(){
        System.out.println("苦逼撸代码中...");
    }
}

在这里插入图片描述
3、在实现继承时一些注意事项
<1>父子类在同一个包,子类可以继承父类中的非私有属性
<2>父子类不在同一个包,子类可以继承public类中的protected属性和pubilc属性
<3>子类可以定义与父类同名的属性,这时候子类讲不能直接访问父类的属性,称为属性的隐藏。(如果需要调用被隐藏的父类属性,静态属性可以使用"父类名.属性名",非静态属性可以使用"super.属性名"

二、方法的覆盖

1.子类将从父类继承下来的方法重新实现,叫做覆盖(Overriding),方法覆盖的原因是对应方法的行为不适应子类的需要,需要在子类中做出相应的调整。

public class TestOverriding {
    public static void main(String[] args) {
        new Animal().walk();
        new Human().walk();
    }
}
class Animal{
    public void walk(){
        System.out.println("我是低级动物,我用四条腿走路!");
    }
}
class Human extends Animal{
    @Override
    public void walk(){
        System.out.println("我是人类,我用两条腿走路!");
    }
}

三、继承中的构造方法与super关键字

1、在创建子类对象时,它首先会调用父类中的构造方法,然后运行实例变量和静态变量的初始化器,最后才运行构造方法本身。(注意:类中没有任何构造方法时,默认系统会有一个无参的没有任何内容构造方法)

public class ConstructTest01 {
    public static void main(String[] args) {
        new KK();
    }
}
class HH{
    HH(){
        System.out.println("HH的构造方法");
    }
}
class KK extends HH{
    KK(){
        System.out.println("KK的构造方法");
    }
}

在这里插入图片描述
在这里插入图片描述
看会爆红!!!

public class ConstructTest02 {
    public static void main(String[] args) {
        new BB();
    }
}
class AA{
    int a;
    AA(int a){
        this.a=a;
        System.out.println("AA的构造方法");
    }
}
class BB extends AA{
    BB(){
       super(1);
        System.out.println("BB的构造方法");
    }
}

在这里插入图片描述
注意:如果调用父类的构造方法,super语句必须放在构造方法的第一条

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值