クラスの継承

Contents [hide]

出力結果

My name is FirstName LastName
My sex is male
My specialty is cardiology


説明

About Base class (Human class), please refer to Create class and object.


プログラム例


Java

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
/*
Human.class must be compiled earlier and must be put in the path of environmental value CLASSPATH=... or in same directory
*/
import java.util.*;
class Doctor extends Human{
    private String specialty;
 
    public Doctor(Map<String, String> opt){
        super(opt);
        this.specialty = opt.get("specialty");
    }
 
    public void saySpecialty() {
        System.out.println("My specialty is " + this.specialty);
    }
 
    public static void main(String args[]) {
        Map<String, String> opt = new HashMap<String, String>();
        opt.put("name", "FirstName LastName");
        opt.put("sex", "male");
        opt.put("specialty", "cardiology");
        Doctor doctor1 = new Doctor(opt);
        doctor1.sayName();
        doctor1.saySex();
        doctor1.saySpecialty();
    }
}

JavaScript

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const Human = require('../human_class/Human.js');
class Doctor extends Human {
    constructor(opt) {
        super(opt);
        this.specialty = opt["specialty"];
    }
 
    saySpecialty() {
        console.log("My specialty is " + this.specialty);
    }
}
module.exports = Doctor;
 
if(!module.parent) {
    let doctor1 = new Doctor({"name":"FirstName LastName", "sex":"male", "specialty":"cardiology"});
    doctor1.sayName();
    doctor1.saySex();
    doctor1.saySpecialty();
}

Perl

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
package Doctor;
use strict;
use Data::Dumper;
use warnings;
use File::Basename;
use lib dirname(__FILE__).'/../human_class';
use base qw(Human);
 
sub new(){
  my $class = shift;
  my $op = shift;
  my $self = Human->new( $op );
  $self = bless $self, $class;
  $self->{'specialty'} = $op->{'specialty'};
  return $self;
}
 
sub saySpecialty(){
  my $self = shift;
  if($self->{'specialty'}){
    print "My specialty is ".$self->{'specialty'}."\n";
  }
}
 
if ($0 eq __FILE__) {
  my $doctor1 = new Doctor({'name' => "FirstName LastName", "sex" => "male", "specialty" => "cardiology"});
  $doctor1->sayName();
  $doctor1->saySex();
  $doctor1->saySpecialty();
}
else{
  1;
}

PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
namespace FirstClass\Example2;
require __DIR__. '/../human_class/Human.php';
use FirstClass\Example1\Human;
 
class Doctor extends Human{
  private $specialty;
 
  public function __construct($opt){
    parent::__construct($opt);
    $this->specialty = $opt["specialty"];
  }
 
  public function saySpecialty(){
    print "My specialty is ".$this->specialty."\n";
  }
}
 
if (!isset(debug_backtrace()[0])) {
  $doctor1 = new Doctor(["name"=>"FirstName LastName", "sex"=>"male", "specialty"=>"cardiology"]);
  $doctor1->sayName();
  $doctor1->saySex();
  $doctor1->saySpecialty();
}

Python

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import sys
sys.path.append('../human_class')
from Human import Human
 
class Doctor(Human):
    def __init__(self, opt):
        super().__init__(opt)
        self.specialty = opt["specialty"]
 
    def saySpecialty(self):
        print("My specialty is " + self.specialty)
 
if __name__ == "__main__":
    doctor1 = Doctor({"name":"FirstName LastName", "sex":"male", "specialty":"cardiology"})
    doctor1.sayName()
    doctor1.saySex()
    doctor1.saySpecialty()

Ruby

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
require_relative "../human_class/Human.rb"
 
class Doctor < Human
    def initialize(opt)
        super
        @specialty = opt["specialty"]
    end
 
    def saySpecialty
        puts "My specialty is " + @specialty.to_s
    end
end
 
if $0 == __FILE__
    doctor1 = Doctor.new({"name" => "FirstName LastName", "sex" => "male", "specialty" => "cardiology"})
    doctor1.sayName
    doctor1.saySex
    doctor1.saySpecialty
end

プログラミング言語比較サイトProgrammingLang.comでは、同じ問題を複数のプログラミング言語がそれぞれどのような記述で解決できるのかの例を提供。
複数の言語を比較し、貴方の問題を解決するのに最適な言語の選択と、その言語での解法を得る事を手助けします。
全問題カバー: JavaScript Perl PHP Python Ruby | 一部: C C# C++ Go Java Rust Shell
 
問題解法大分類(50音順)
Class | 時間 | 数値 | System | Database | Test | Network | 配列 | ファイルシステム | 変数 | 文字列
その他役立ちコンテンツ

※当サイトではアフィリエイトプログラムを利用して商品を紹介しています。