//Overroad_01.java public class Overroad_01{ void method01(){ System.out.println("引数のデータ型: ()"); } void method01(int a){ System.out.println("引数のデータ型: (int)"); } void method01(int a, int b){ System.out.println("引数のデータ型: (int,int)"); } void method01(int a, double b){ System.out.println("引数のデータ型: (int,double)"); } void method01(double a, int b){ System.out.println("引数のデータ型: (double,int)"); } public static void main(String[] args){ Overroad_01 over_road01 = new Overroad_01(); over_road01.method01(3.14d, 100); } }
>cd ws ws>javac -encoding UTF-8 Overroad_01.java ws>java Overroad_01 引数のデータ型: (double,int)
//Area_01.java public class Area_01{ //面積を求めます public double circle(double redius){ System.out.print("TypeA "); return redius * 2 * Math.PI; } public double circle(double redius, double pi){ System.out.print("TypeB "); return redius * 2 * pi; } public static void main(String[] args){ Area_01 area_01 = new Area_01(); double area; area = area_01.circle(4); //引数:(double) System.out.println("面積= " + area); area = area_01.circle(4, 3.14); //引数:(double,double) System.out.println("面積= " + area); } }
>cd ws ws>javac -encoding UTF-8 Area_01.java ws>java Area_01 TypeA 面積= 25.132741228718345 TypeB 面積= 25.12
//Area_02.java public class Area_02{ //面積を求めます private final double pi; public Area_02(){ //コンストラクタA 引数 () this.pi = Math.PI; } public Area_02(double pi){ //コンストラクタB 引数 (double) this.pi = pi; } public double circle(double redius){ return redius * 2 * pi; } public static void main(String[] args){ Area_02 area_02A = new Area_02(); //引数:() Area_02 area_02B = new Area_02(3.14d); //引数:(double) double area; area = area_02A.circle(4); System.out.println("コンストラクタA 面積= " + area); area = area_02B.circle(4); System.out.println("コンストラクタB 面積= " + area); } }
>cd ws ws>javac -encoding UTF-8 Area_02.java ws>java Area_02 コンストラクタA 面積= 25.132741228718345 コンストラクタB 面積= 25.12
| オーバーロード : | 一つのクラスに、引数の異なる同名のメソッドを定義すること |
| オーバーライド : (@Override) | スーパークラスに存在するメソッドを、サブクラスで 再定義(上書き)すること。 |