3.26抽象方法,接口

Posted sonder

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3.26抽象方法,接口相关的知识,希望对你有一定的参考价值。

  【2018-03-26 18:54:48】

抽象方法:

抽象方法的注意事项:必须声明在抽象类中,抽象方法没有方法体,只有方法的声明,需要用abstract关键字进行修饰。示例如下:

abstract void xxx();
public abstract class Vehicle {
    //行驶
    public abstract void run();
}

其次,抽象类中是可以声明普通方法的,例如:

public abstract class Vehicle {
    //行驶的行为
    public abstract void run();
    //抽象类中可以声明普通方法
    public void msg(){
        System.out.println("这是父类");
    }
}

声明抽象方法,就是为了让子类重写,并且抽象类不能够实例化,例如:

Demo.java
public
abstract class Demo { abstract void run(); }
Demo2.java
public class Demo2 extends Demo {
    @Override
    void run() {
    }
}

当Demo2继承Demo抽象类时,Demo2会自动重写父类Demo的run()方法。

另外,创建抽象类的对象,直接重写了抽象方法,抽象类是不能够直接创建对象的。

在计算薪水的方法的小Demo中,首先创建了员工Staff抽象类,并且类中有计算薪水的方法:pay(),在普通员工类、经理类、销售类继承了抽象类并重写了的pay()方法,在测试类中,抽象父类指向子类的对象,这也是多态的一种体现。

接口:

首先,接口不可以实例化,接口下可以声明属性。接口中的方法都是public abstract方法,没有方法体。实现类必须实现接口的所有方法,接口中的变量都是静态常量。

接口指向实现类的对象,也是多态的一种体现。示例:

Demo.java
public interface Demo {
    void face();
}
public class Demo2 implements Demo {
    @Override
    public void face() {
    }
}

在以上的示例中,Demo2.java为Demo.java接口的实现类。声明接口时,使用interface进行修饰。在实现类中,使用implements实现接口,并且重写父类的face()方法。

以下为接口的注意事项:

1.接口不能够创建对象

2.接口中的方法都是抽象方法

3.接口中的属性都是静态常量

4.实现类一次可以实现多个接口

5.一个实现类可以继承一个类的同时,实现多个接口,继承extends写在implements前面

6.接口之间可以实现多继承

A.java
public interface A {
    public void a();
    public void a1();
}

在A.java中,创建了一个接口,并且有a和a1两个属性。

B.java
public interface B extends A {
    public void b();
    public void b1();
}

在B.java中,接口B继承了接口A

D.java
public class D implements A, B, C {

    @Override
    public void b() {
    }

    @Override
    public void b1() {
    }

    @Override
    public void a() {
    }

    @Override
    public void a1() {
    }

}

在D.java中,同时实现了多个接口。

以上是关于3.26抽象方法,接口的主要内容,如果未能解决你的问题,请参考以下文章

Java Lambda

Android 片段和依赖注入

Java 封装

Java 封装

Java 封装

Java 封装