Java的三大特征------继承

Java的三大特征——继承

为了提高代码的复用性,对类进行抽象,实现对现实世界更好的建模。
子类继承父类可以获得父类所有的属性和方法(除了构造方法),在Java中没有多继承,只有单继承。
在Java中如果类的后面没有写extends,则默认继承Object类,所有类的根基类都是Object,

  1. 方法的重写,
    在类中,如果在父类中继承的方法,不满足自己本身所需要的,可以重写该方法,必须要有相同的方法名称,返回类型和参数列表。下面是重写的代码。
public class TestOverride {
    public static void main(String[] args) {
        Chicken chicken = new Chicken();
        chicken.eat();
    }
}
class Animal {
    public void eat() {
        System.out.println("Animal.eat(我要开始   狂吃狂吃    吃食物了)");
    }
}
class Chicken extends Animal {
    @Override
    public void eat() {
        System.out.println("Chicken.eat(一点点点点的吃东西)");
    }
    //这里是重载eat方法
    public void eat(String food) {
        System.out.println("Chicken.eat(类似于方法的重载)" + food);
    }
}

2.super关键字
在普通方法中,指向的是直接父类的方法,
1.在构造方法中,调用父类的构造函数,且必须在第一行调用,如果不写super(),则编译器会在第一行默认加上,所以这里写不写都可以,
2.创建对象的时候,永远都是先创建父类,在创建子类。
3.一个子类中包含了它的父类,他会把整个继承链的类都是创建一次。
下面是super使用的代码

public class TestSuper {
    public static void main(String[] args) {
        Pine pine = new Pine(1000);
        pine.green();
        System.out.println(pine.age);
    }
}

class Tree {
    public int age;
    public Tree(String str) {
        age = 1000;
        System.out.println("Tree.Tree(我是小树的构造器)");
    }
    public void sleep() {
        System.out.println("Tree.sleep(小树在睡觉,请勿打扰)");
    }
    public void green() {
        System.out.println("Tree.green(春天到了,小树被绿了)");
        this.sleep();
    }
    @Override
    public String toString() {
        return "小树的toString";
    }
    public void abc() {
    }
}
class Pine extends Tree {
    public int age;
    public Pine(int num) {
        super("abcd");
        age = 998;
        System.out.println("Pine.Pine(我是松树的构造器)");
    }
    @Override
    public void sleep() {
        super.abc();
        System.out.println("Pine.sleep(松树在睡觉)");
    }

}

这段代码的输出结果
Tree.Tree(我是小树的构造器)
Pine.Pine(我是松树的构造器)
Tree.green(春天到了,小树被绿了)
我被调用了
Pine.sleep(松树在睡觉)
在这里 前两句代码是构造函数里面的两句输出语句,证明了在创建子类的前面,先创建了父类。这里面还可以分析super,this,所指向的对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值