Java的继承(extends)

1.什么是继承

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

继承格式:

简单例子:

创建父类(Animal):

public class Animal {

    public String name;

    public int age;

    public void doing(){
        System.out.println("我的名字是:" + name + ", 今年" + age + "岁了");
    }
}

创建子类(Cat),继承父类,关键字为extends

public class Cat extends Animal { //创建一个猫类,继承动物类

    public static void main(String[] args) {

        Cat c = new Cat();  //创建猫对象c

        c.name = "小猫";  //直接获得父类的成员对象并赋值

        c.age = 5;       //直接获得父类的成员对象并赋值

        c.doing();       //调用父类的方法
    }
}

由上述例子可知,猫类并没有创建成员变量name和age,也没用成员方法doing(),但是由于继承了父类Animal,于是就可以直接享用父类的成员变量和方法。

注意:一个类只能继承一个父类,不能够继承多个父类,即上述例子,Cat类继承了Amimal类,就不能够再继承其他类,但是可以多级继承,即允许子类如(SmallCat)再继承Cat,即

如果定义一个 Java类时, 并未显式指定这个类的直接父类(即不用extends关键字),则这个类默认继承 java.lang.Object 类,因此可以得出, java.lang.Object 类是所有类的父类。

2.方法的重写(override)

方法的重写指的是子类继承了父类的某个方法,但是不直接使用父类中这个方法的内容,而是自己重写这个方法,并调用重写后的方法。注意:(方法名,参数列表,返回类型必须一致)。

简单的例子:定义父类(Bird)

public class Bird {

    public String name;

    public void fly(){
        
        System.out.println("我能在天空中飞翔!");
        
    }
}

定义子类(Ostrich)继承父类(Bird),并重写方法fly();

public class Ostrich extends Bird {

    public void fly(){ //重写父类方法

        System.out.println("我也是鸟,但我不会飞,呜呜呜");
    }

    public static void main(String[] args) {

        Ostrich o = new Ostrich();

        o.fly();  //调用,会发现输出的是  “我也是鸟,但我不会飞,呜呜呜”
    }
}

扩展知识:重载(overload)

在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同甚至是参数顺序不同)则视为重载。同时,重载对返回类型没有要求,可以相同也可以不同,但不能通过返回类型是否相同来判断重载。

public class Test {

    public static void main(String[] args){

        Test t = new Test();

        t.play(); //调用没有参数的play()方法

        t.play("篮球");  //调用有参数name的play()方法


    }

    public void play(){
        System.out.println("我在玩耍");
    }

    public void play(String name){
        System.out.println("我在玩" + name);
    }
}

重写与重载的区别:

1.重写发生在子类和父类之间,重载发生在一个类中。

2.重写要求方法名,参数列表,返回值必须相同,而重载则要求方法名相同,参数列表不同,返回值可以相同也可以不同。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值