LoginSignup
3
2

More than 3 years have passed since last update.

[Java / Swift]Java Interface と Swift Protocol の比較

Last updated at Posted at 2019-08-11

この記事で書くこと

Java interface と Swift Protocol の比較

この記事を書いた理由

・ 基本情技術者試験対策
・ Java と Swift で似ている箇所の比較

コード例(Java interface)

main.java
public class Main {

    interface sampleInterface{
        String sampleFunction(String a, String b);
    }


    public static void main(String[] args) throws Exception {

    /* クラスに interface を実装する時は、implements と書く */    
    class A implements sampleInterface{
        public String sampleFunction(String a, String b){
            return "「" + a + "」と「" + b + "」はclassAに定義されたsampleFunctionの引数";
        }
    }

    class B implements sampleInterface{
        public String sampleFunction(String a, String b){
            return "「" + a + "」と「" + b + "」はclassBに定義されたsampleFunctionの引数";
        }
    }

    A a = new A();
    B b = new B();

    System.out.println(a.sampleFunction("c","d"));
    System.out.println(b.sampleFunction("e","f"));

    }
}

出力結果(Java)

「c」と「d」はclassAに定義されたsampleFunctionの引数
「e」と「f」はclassBに定義されたsampleFunctionの引数

コード例(Swift Protocol)

sample.swift
// プロトコル
protocol SampleProtocol{
    func sampleFunction(_ a:String, _ b:String) -> String
}

// class A
class A:SampleProtocol{
    func sampleFunction(_ a:String, _ b:String) -> String{
        return "「\(a)」と「\(b)」はclassAに定義されたsampleFunctionの引数"
    }
}


// class B
class B:SampleProtocol{
    func sampleFunction(_ a:String, _ b:String) -> String{
        return "「\(a)」と「\(b)」はclassBに定義されたsampleFunctionの引数"
    }
}


var a = A()
var b = B()

print(a.sampleFunction("c","d"))
print(b.sampleFunction("e","f"))

出力結果(swift)

「c」と「d」はclassAに定義されたsampleFunctionの引数
「e」と「f」はclassBに定義されたsampleFunctionの引数
3
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2