JavaとC#の比較12
Java講座19章〜20章で比較
Rei19_1(抽象クラス)
 JavaC#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import java.lang.*; //C#に合わせる為使用。普段は省略

class Rei19_1{
    public static void main(String[] args){
        Carnivorous tiger  = new Carnivorous();
        Herbivorous rabbit = new Herbivorous();

        tiger.eat();
        rabbit.eat();

        int cRyou = tiger.getRyou();
        int hRyou = rabbit.getRyou();

        System.out.println
            (tiger.getType()  + "の食料" + cRyou);
        System.out.println
            (rabbit.getType() + "の食料" + hRyou);
    }
}

abstract class Animal{
    protected int ryou;

    public int getRyou(){
        return ryou;
    }

    public abstract void eat();
    public abstract String getType();
}

//肉食動物////////////////////////
class Carnivorous extends Animal{
    public void eat(){
        System.out.println("肉を食べる");
        ryou = 1000;
    }

    public String getType(){
        return "肉食動物";
    }
}

//草食動物////////////////////////
class Herbivorous extends Animal{
    public void eat(){
        System.out.println("草を食べる");
        ryou = 300;
    }

    public String getType(){
        return "草食動物";
    }
}
using System;

class Rei19_1{
    static void Main(){
        Carnivorous tiger  = new Carnivorous();
        Herbivorous rabbit = new Herbivorous();

        tiger.eat();
        rabbit.eat();

        int cRyou = tiger.getRyou();
        int hRyou = rabbit.getRyou();

        Console.WriteLine
            (tiger.getType()  + "の食料" + cRyou);
        Console.WriteLine
            (rabbit.getType() + "の食料" + hRyou);
    }
}

abstract class Animal{
    protected int ryou;

    public int getRyou(){
        return ryou;
    }

    public abstract void eat();
    public abstract string getType();
}

//肉食動物////////////////////////
class Carnivorous : Animal{
    public override void eat(){
        Console.WriteLine("肉を食べる");
        ryou = 1000;
    }

    public override string getType(){
        return "肉食動物";
    }
}

//草食動物////////////////////////
class Herbivorous : Animal{
    public override void eat(){
        Console.WriteLine("草を食べる");
        ryou = 300;
    }

    public override string getType(){
        return "草食動物";
    }
}

Rei20_1(ポリモーフィズム)
 JavaC#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import java.lang.*; //C#に合わせる為使用。普段は省略

class Rei20_1{
    public static void main(String[] args){
        Animal[] animals = {
            new Carnivorous(),
            new Herbivorous()
        };

        for(int i=0; i<animals.length; i++){
            animals[i].eat();
        }
    
        for(int i=0; i<animals.length; i++){
            String element =
                animals[i].getType();
            int ryou = animals[i].getRyou();

            System.out.println
                (element + "が食べた量" + ryou);
        }
    }
}

abstract class Animal{
    protected int ryou;

    public int getRyou(){
        return ryou;
    }

    public abstract void eat();
    public abstract String getType();
}

//肉食動物////////////////////////
class Carnivorous extends Animal{
    public void eat(){
        System.out.println("肉を食べる");
        ryou = 1000;
    }

    public String getType(){
        return "肉食動物";
    }
}

//草食動物////////////////////////
class Herbivorous extends Animal{
    public void eat(){
        System.out.println("草を食べる");
        ryou = 300;
    }

    public String getType(){
        return "草食動物";
    }
}
using System;

class Rei20_1{
    static void Main(){
        Animal[] animals = {
            new Carnivorous(),
            new Herbivorous()
        };

        for(int i=0; i<animals.Length; i++){
            animals[i].eat();
        }
    
        for(int i=0; i<animals.Length; i++){
            String element =
                animals[i].getType();
            int ryou = animals[i].getRyou();

            Console.WriteLine
                (element + "が食べた量" + ryou);
        }
    }
}

abstract class Animal{
    protected int ryou;

    public int getRyou(){
        return ryou;
    }

    public abstract void eat();
    public abstract String getType();
}

//肉食動物////////////////////////
class Carnivorous : Animal{
    public override void eat(){
        Console.WriteLine("肉を食べる");
        ryou = 1000;
    }

    public override String getType(){
        return "肉食動物";
    }
}

//草食動物////////////////////////
class Herbivorous : Animal{
    public override void eat(){
        Console.WriteLine("草を食べる");
        ryou = 300;
    }

    public override String getType(){
        return "草食動物";
    }
}

TOPに戻る   JavaとC#の比較に戻る