0
点赞
收藏
分享

微信扫一扫

Android开发教程之Java的抽象类 多态以及接口

南柯Taylor 2021-09-25 阅读 37

一、抽象类

首先它也是一个类,类就有基本的属性和方法。但是有时候我也子类必须实现某个方法才能算是真正我的子类。就比如我要每个动物都有吃的方法,但具体吃什么由你们决定,就是必须有,如eat()方法。这样的方法我们就成为抽象方法,定个标准的意思。
具有抽象方法的类是抽象类

定义抽象类格式

使用abstract class来定义抽象类

定义抽象类的抽象方法

使用abstract关键字来定义

如下代码示例:

public abstract class Animal {

    private String name;

    public Animal(String name) {
        this.name = name;
    }

    abstract void eat();
}  
抽象类是不能实例化的,需要它的实现类才能实例化,可为实现类就是继承了抽象类,实现了全部抽象方法的类。用extends关键字

如Dog实现类

public class Dog extends Animal{

    public Dog(String name) {
        super(name);
    }

    @Override
    void eat() {
        System.out.println("我要吃骨头");
    }
}

二、接口

首先接口和抽象类很像,都是具有抽象方法。按我们的理解,有抽象类完全满足了啊。但抽象类有个大缺陷就是只能单继承,接口可以多继承,也许因为这一缘故,才有了接口。

定义接口格式

interface xxx (xxx为接口名)

抽象方法

因为接口的方法都是抽象方法,所有可以省略abstract

实现接口 implements

class AClass implements xxx

一般什么时候定义接口呢

接口示例代码:

public interface  ClickListener {

    //点击事件抽象
    void click();
}

这时鼓和钟都有敲击或者点击事件
钟:

public class Clock implements ClickListener{
    @Override
    public void click() {
        System.out.println("钟敲击声音为叮");
    }
}

鼓:

public class Drum implements ClickListener{
    @Override
    public void click() {
        System.out.println("鼓敲击声音为嘣");
    }
}

三、多态

讲完继承,抽象类,接口。就可以讲讲多态了
因为多态的三个必要条件

  1. 继承
  2. 重写
  3. 父类引用指向子类对象 如Animal a = new Dog();

示例应用代码:

            if (getIView() instanceof NewMsgNoticeIView) {
                getIView().showRealView();
                ((NewMsgNoticeIView) getIView()).onDataResult(mr.getData());
            }
            if (getIView() instanceof MainIView)
                ((MainIView) getIView()).onDataResult(mr.getData());
举报

相关推荐

0 条评论