この記事で書くこと
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の引数