Edited at

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


この記事で書くこと

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の引数