初入多态,abstract抽象类,interface接口

本文介绍了Java中的多态性,包括其三个关键要素:继承、重写和父类引用子类对象。通过Father、Son和Daughter类的例子展示了多态的使用。此外,还探讨了抽象类的实现,Animal类作为抽象类,Dog和Cat类进行重写抽象方法。最后,讨论了接口的应用,如何通过Animal接口实现多态,并在Test01类中展示了代码示例。
摘要由CSDN通过智能技术生成
/**
 * 多态有三个关键点:
 * 1、要有继承
 * 2、要有重写
 * 3、要有父类引用指向子类对象
 * 一种事物有多个状态
 */

现有父类Father,子类Son、Daughter

 // 这就是最简单多态
        Father f = new Son();
        f.smoke();
        Father f1 = new Daughter();
        f1.smoke();

        f1.fight(f);

f、f1都是子类,子类都继承了父类,所以他们可以相互间调用

 

abstract的实现

1.Animal.java

// 添加abstract表示抽象类
public abstract class Animal {

    // 此方法是抽象的,所以需要加上abstract
    // 当父类有抽象的方法,子类必须重写,不然子类会报错
    public abstract void eat();
    public abstract void breathe();

//    public void breathe(){
//        System.out.println("我在呼吸!");
//    }
}

2、Dog.java

public class Dog extends Animal {

    // 子类实现抽象方法
    @Override
    public void eat() {
        System.out.println("狗在啃骨头");
    }

    @Override
    public void breathe() {

    }
}

3、Cat.java

public class Cat extends Animal {

    @Override
    public void eat() {
        System.out.println("猫在吃鱼");
    }

    @Override
    public void breathe() {

    }
}

4、Test01

public class Test01 {
    public static void main(String[] args) {
        // 多态
        //把Dog修改成Cat,就能换成Cat方法里所有的东西
        Animal animal = new Dog();
        animal.eat();
        animal.breathe();
    }
}

输出结果:

狗在啃骨头

interface

如果你的方法全是抽象方法,可改成接口
public  interface Animal{
      //规定了动物都有呼吸和吃的方法
      void eat();
      void breathe();
 }
如果Animal是接口,Dog就要写成public class Dog implements Animal,Cat亦然
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值