インターフェースは何をするのでしょうか?

王林
リリース: 2020-06-28 16:05:10
オリジナル
27448 人が閲覧しました

インターフェイスの役割: 1. インターフェイスによってプロジェクトを分離でき、すべてのレイヤーがインターフェイスに向けて開発されるため、開発効率が向上します; 2. インターフェイスによってコードとコードの間の結合が軽減されます; 3. インターフェイスは複数の方法で実装できます, 多重継承。インターフェイスに加えて、クラスは他のクラスも継承できます。

インターフェースは何をするのでしょうか?

インターフェースの役割:

(推奨チュートリアル: java エントリー プログラム)

1. プロジェクトを分離し、すべてのレイヤーをインターフェイス化して開発効率を向上;

2. インターフェイスはコードとコードの結合を減らし、プラグイン可能になり、自由に切り替えることができます;

3. インターフェイスと抽象クラスの両方で特定の機能を完了できます。インターフェイスは複数の方法で実装および継承でき、インターフェイスに加えて他のクラスも継承できるため、インターフェイスが推奨されます。

(ビデオ チュートリアルの推奨: Java ビデオ チュートリアル)

コード例:

public interface CustomerService {    //定义一个推出系统的方法
    void logout();
}

package date818;//接口实现类1public class CustomerServierImpl implements CustomerService {    
    public void logout(){
        System.out.println("成功退出系统");
    }
}

package date818;//接口实现类2public class CustomerServiceImpl2 implements CustomerService{    
    public void logout(){
        System.out.println("hello world");
    }
}

package date818;public class TestCustomer {    
    public static void main(String[] args){  //需要执行CustomerServiceImpl和CustomerImpl2接口实现类中的logout方法
        //以下程序面向接口调用
        CustomerService cs = new CustomerServierImpl();//多态。父类型引用指向子类型对象
        //调用
        cs.logout();
        CustomerService cs2 = new CustomerServiceImpl2();
        cs2.logout();
    }
}
ログイン後にコピー

インターフェイスの定義

package date818;
public interface Engine {    //所有发动机都可以通过这个接口启动
    void start();
}//定义实现接口的类
package date818;
public class Honda implements Engine{    
    public void start(){
        System.out.println("本田启动");
    }
}
package date818;public class Ymaha implements Engine{    
    public void start(){
        System.out.println("雅马哈启动");
    }
}//定义生产汽车的类package date818;public class Car {    //面向接口编程,不能将类实例化
    /**
     * 引用接口定义一个属性e,相当于
     * String name;
     * Integer age;
     * 类里定义的变量是成员变量;方法里定义的变量是局部变量。
     */
    Engine e ;//成员变量e

    Car(Engine e){        //定义构造方法,把局部变量e赋值给成员变量
        this.e=e;
    }    //对外提供的测试方法
    public void testEngine(){        //成员变量e
        e.start();
    }
}//定义测试类package date818;public class TestCar {    
    public static void main(String[] args){        //生产引擎
        Engine e = new Ymaha();        //根据构造方法传入参数生产汽车
        Car c = new Car(e);        //测试引擎
        c.testEngine();

        c.e = new Honda();//已经定义了一个实例,直接对实例的参数修改即可
        c.testEngine();
    }
}
ログイン後にコピー

以上がインターフェースは何をするのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート