关于继承

方法可覆盖,变量不可覆盖,引用是父类,实例是子类,那么变量用父类的,方法用子类的

以上输出:

5

son

 

若方法调用了变量,那么调用的是方法所在类中的变量

以上输出:

5

9

以上输出:

5

5

 

在Java中,继承和方法重写是实现多态的关键特性。首先,我们来看一下如何通过继承创建一个基础类,并在其子类中重写方法。 ```java // 定义一个基类 Animal class Animal { // 普通方法,可以被所有动物实例共享的行为 void eat() { System.out.println("Animal is eating"); } } // 子类 Dog,从 Animal 类继承并重写 eat 方法 class Dog extends Animal { // 方法重写,Dog 版本的 eat 方法 @Override void eat() { System.out.println("Dog is eating with a bone"); } } public class Main { public static void main(String[] args) { // 创建 Animal 类型的对象,实际上是 Dog 的实例 Animal animal = new Dog(); // 调用 eat 方法,因为多态,会执行 Dog 类的 eat 实现 animal.eat(); // 输出 "Dog is eating with a bone" // 显示继承和多态的好处,比如统一处理动物吃的行为,而不需要关心具体的种类 animal = new Cat(); // 假设有一个同样继承自 Animal 的 Cat 类 animal.eat(); // 这里也会调用 Dog 或 Cat 中的具体实现,但代码只需处理 Animal 对象即可 } } ``` 在这个例子中: 1. `eat` 方法在基类 `Animal` 中声明,表示所有动物都有吃的能力。 2. 子类 `Dog` 继承了 `Animal` 并重写了 `eat` 方法,提供了特定于狗的吃的方式。 3. 在 `main` 函数中,虽然我们创建的是 `Dog` 对象,但由于多态,当我们使用 `animal` 引用调用 `eat` 时,实际执行的是 `Dog` 类的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值