�p���ƃC���^�[�t�F�C�X�́AOOP����ł���C#���w�ԏ�ŁA�����Ă͒ʂ�Ȃ��d�v�Ȋ�{�@�\�ł���B�����͂Ȃ��K�v�ŁA���̖��ɗ��̂��H
�@
�@�{�L���́A�i���j�Z�p�]�_�Ђ����s���鏑�Ёw�V�v���O���~���O�� C#���킩��{�g����x���狖�ē]�ڂ������̂ł��B�����ЂɊւ���ڂ������ɂ��ẮA�{�L���̍Ō�Ɍf�ڂ��Ă��܂��B
�@�I�u�W�F�N�g�w���ɂ́u�p���v�ƌĂ������I�ȋ@�\�����݂���B�p���Ƃ́A����N���X�̋@�\���܂ސV�����N���X���쐬����@�\�ł���B����ɂ��A���l�ȃN���X��f�����쐬���Ȃ���A��{�@�\���̃N���X�ŋ��L�����邱�Ƃ��ł���B�܂��A�p���Ɏ����@�\�Ƃ��āu�C���^�[�t�F�C�X�v������B�C���^�[�t�F�C�X�ɂ́A�N���X�����ׂ����\�b�h�Ȃǂ̎�ނ��߂�@�\������B����ɂ��A�����C���^�[�t�F�C�X�����������N���X�́A�����Ăяo�����@�ŗ��p�\�ɂȂ�B�{�͂ł́A����2�̋@�\�ɂ��ĉ������B
�@�p���̓I�u�W�F�N�g�w���ɂ�����d�v�ȋ@�\��1�ł���B�p���Ƃ́A����N���X�̎��@�\��������������p���ŁA����ɋ@�\��t���������V�����N���X�����@�\�������B
�@����������̓I�ȃT���v���E�\�[�X�����Ă݂悤�BList 4-1�̃T���v���E�\�[�X�͂�����{�I�Ȍp���@�\���L�q�����\�[�X�E�R�[�h�ł���B
1: using System;
2:
3: namespace Sample001
4: {
5: public class Person
6: {
7: public string getName()
8: {
9: return "���ɂ͖��O������܂���B";
10: }
11: }
12:
13: public class Taro : Person
14: {
15: public string getTaroName()
16: {
17: return "���̖��O�͑��Y�ł��B";
18: }
19: }
20:
21: class Class1
22: {
23: [STAThread]
24: static void Main(string[] args)
25: {
26: Person person = new Person();
27: Console.WriteLine( person.getName() );
28: Taro taro = new Taro();
29: Console.WriteLine( taro.getName() );
30: Console.WriteLine( taro.getTaroName() );
31: }
32: }
33: }
�@���̃\�[�X�E�R�[�h�ɂ�3�̃N���X����`����Ă���B1��5�s�ڂ���n�܂�Person�N���X�B����1��13�s�ڂ���n�܂�Taro�N���X�B�Ō��21�s�ڂ���n�܂�Class1�N���X�ł��邪�A����͂����P��Main���\�b�h�������߂ɑ��݂��Ă��邾���Ȃ̂ŁA���̖������ʂ����Ă��Ȃ��B���̓_�ɂ��ẮA�{�͂̃T���v���ɂ��ׂċ��ʂ��Ă��邱�ƂȂ̂ŁAClass1�N���X�̑��݂�Main���\�b�h�������������Ă������������B
�@���āAList 4-1�̃|�C���g�́A13�s�ڂł���B���́upublic class Taro : Person�v���Ӗ����Ă��邱�Ƃ́A�ȉ��̂Ƃ��肾�B�܂��Apublic�́A���ꂪ�O������A�N�Z�X�������ꂽ�N���X�ł��邱�Ƃ��������A���̃T���v���ł͂���قǑ傫�ȈӖ��͂Ȃ��Bclass�́A�N���X��錾����L�[���[�h�ł���A�錾�����N���X�̖��O��Taro�ł���B�����āA���̌�ɂ���R�����i:�j�L�����A�ق��̃N���X����̌p�����s���Ƃ����Ӑ}���������߂ɋL�q�����B��̓I�ɂǂ̃N���X����p������邩�́A���̌�ɃN���X�����L���Ďw�肷��B�����ł́APerson�Ƃ����L�[���[�h���������ƂŁAPerson�N���X����p�����Ă��邱�Ƃ������Ă���B
�@Person�N���X���p������Taro�N���X�́APerson�N���X�̎��@�\��Taro�N���X�̎��@�\�̑o���𗘗p�ł���B���̏؋��ɁA28�s�ڂō쐬����Taro�N���X�̃C���X�^���X����́APerson�N���X�Œ�`����getName���\�b�h�ƁATaro�N���X�Œ�`����getTaroName���\�b�h�̑o�����ǂ�������p�ł��邱�Ƃ��A29�s�ڂ�30�s�ڂ��番���邾�낤�B
�@���ۂɎ��s�������ʂ�Fig.4-1�̂Ƃ��肾�B1�s�ڂ�Person�N���X��getName()���\�b�h�̌��ʁA2�s�ڂ�Taro�N���X��getName()���\�b�h�̌��ʂł���BTaro�N���X��Person�N���X�̋@�\�������p���ł���̂œ��������\�������B3�s�ڂ́ATaro�N���X�Œlj����ꂽgetTaroName()�̌��ʂł���B�����Person�N���X�ɂ͂Ȃ��ATaro�N���X�ɂ����Ȃ����\�b�h�ł���B
�@���āA�����ŗp���������悤�B����N���X���p�����ĕʂ̃N���X��������Ƃ��A�ŏ��̃N���X���X�[�p�[�N���X�Ƃ����B�t�ɁA����N���X����ʂ̃N���X�����ꂽ�Ƃ��A���ꂽ�N���X�̓T�u�N���X�Ƃ����B������ɂ�����������Ȃ����A����������������̂ł����Ȃ��̂ŁA�ËL���Ă��܂��Γ���͂Ȃ��BFig.4-2���Q�Ƃ��ꂽ���B
�@�p���͋@�\�𑝂₷���Ƃ����Ɏg�p�ł���킯�ł͂Ȃ��B�@�\��u��������A�Ƃ����g�������\���B�Ⴆ�A����N���X���p������Ƃ��ɁA���̃N���X�����Ƃ��Ǝ����Ă��郁�\�b�h�̒��g�������������ւ��Ă��܂��Ƃ������Ƃ��ł���B����ւ��邭�炢�Ȃ�A�p���Ȃǂ��Ȃ���悢�Ǝv����������Ȃ����A���ۂɂ���Ă���ƁA����̋@�\��������ւ������Ƃ�����ʂɑ���������̂ł���B�܂�A�命���̋@�\�͌p�����āA�ꕔ�̋@�\��������ւ������Ƃ����j�[�Y�ɑΉ�����̂��A���̋@�\�ł���B
�@�����ł́AList 4-1�̃T���v���E�\�[�X�������C�����āA������������Ă݂悤�B��L�̃T���v���E�\�[�X�ł̓N���XTaro��getTaroName�Ƃ������\�b�h��t���Ă݂����A���e�I�ɂ́ugetName(���O����������)�v�Ƃ����Ă��悢���̂ł���B�����ŁA�N���XPerson��getName���\�b�h���A�N���XTaro�Ōp������ۂɒ��g��u��������悤�ɂ��Ă݂悤�B
�@��̓I�ȃ\�[�X�E�R�[�h��List 4-2�̂悤�ɂȂ�B
1: using System;
2:
3: namespace Sample002
4: {
5: public class Person
6: {
7: public string getName()
8: {
9: return "���ɂ͖��O������܂���B";
10: }
11: }
12:
13: public class Taro : Person
14: {
15: public new string getName()
16: {
17: return "���̖��O�͑��Y�ł��B";
18: }
19: }
20:
21: class Class1
22: {
23: [STAThread]
24: static void Main(string[] args)
25: {
26: Person person = new Person();
27: Console.WriteLine( person.getName() );
28: Taro taro = new Taro();
29: Console.WriteLine( taro.getName() );
30: Person someone = new Taro();
31: Console.WriteLine( someone.getName() );
32: }
33: }
34: }
�@�����Œ��ڂ��ׂ��́A15�s�ڂł���B���\�b�h�̒�`�ɁA����猩����Ȃ��悤�Ȍ����ꂽ�悤�ȃL�[���[�h���lj�����Ă��邱�Ƃ������邾�낤�Bnew�Ƃ����L�[���[�h�̓I�u�W�F�N�g���쐬����Ƃ��ɂ����g���L�[���[�h�ƂÂ�͓����ł���B�������A�����ł͂܂������Ⴄ�Ӗ������̂ł���B����new�́A�u�p�������N���X�ɂ��铯���̃��\�b�h�̒��g��u�������܂���v�Ƃ������Ƃ������L�[���[�h�ł���B�����ŁAJava��C++�̌o��������l�Ȃ�A�u����H�v�Ǝv�����낤�B�����̌���ł́A���������Ȃ��Ă������̃��\�b�h��u�������邱�Ƃ��ł������炾�B�����A�p���𑽗p����ƁA�ǂ̃N���X�̂ǂ̃��\�b�h���Ăяo�����̂�������ɂ����Ȃ�B���R�ɂ��������O�̃��\�b�h������Ă��܂������ʁA�Ăяo���������\�b�h���Ăꂸ�o�O�ɂȂ�Ƃ����P�[�X������B�����ŁAC#�ł́A�����̃N���X�̃��\�b�h��u�������邱�Ƃ��Ӑ}����ꍇ�ƁA�܂������V�K�Ƀ��\�b�h���`����ꍇ�ł́A�قȂ�\���ł̋L�q����������悤�ɂȂ��Ă���킯�ł���B����ɂ��A�^�C�v�����Ԃ͏��X�����邪�A���̑���ɁA���ݓI�Ƀo�O�����荞�ތ��������Ă���Ƃ�����B
�@���āA���s���ʂ�Fig.4-3�̂悤�ɂȂ�B
�@Fig.4-3�̍ŏ���1�s�́AList 4-2��26�`27�s�ڂ̃R�[�h�ɂ����̂ł���BPerson�N���X�̃C���X�^���X���쐬���ă��\�b�h���Ăяo���Ă���킯�����A���R�A���̌��ʂɂ�Taro�N���X�͉��̉e�����y�ڂ��Ȃ��B�܂�APerson�N���X��getName���\�b�h�����s����Ă���̂ł���B
�@2�s�ڂ́A28�`29�s�ڂ̃R�[�h�ɂ����̂ł���B����getName���\�b�h���Ăяo���Ă��A���x��Taro�N���X��getName���Ăяo����APerson�N���X��getName�͖�������Ă��邱�Ƃ������邾�낤�B
�@�Ō��1�s�́A������Ɨ������ɂ����Ǝv���B����́A30�`31�s�ڂ̃R�[�h�ɂ����̂ł��邪�A�����ł́ATaro�N���X�̃C���X�^���X���쐬���Ă���inew Taro()�j�ɂ�������炸�A����ւ̎Q�Ƃ�Person�^�̕ϐ��Ɋi�[���Ă��܂��Ă���B���́A����I�u�W�F�N�g�ւ̎Q�Ƃ��A�X�[�p�[�N���X�̃C���X�^���X�ւ̎Q�ƂƂ��Ĉ������Ƃ́A����d�l�I�ɔF�߂��Ă���B���̋@�\�́A���ۓx�̍����@�\����������ۂɂ͕s���Ȃ��̂Ƃ����A.NET Framework�̃N���X�E���C�u�����̒��ɂ�������������邱�Ƃ��ł���B�Ⴆ�A�r�b�g�}�b�v�A�A�C�R���A�J�[�\���A���^�t�@�C���̃N���X�́A���ׂ�System.Drawing.Image�N���X����p������A����Ă���B���̂��߁ASystem.Drawing.Image�N���X����������@�\���쐬����ƁA�����p���āA�r�b�g�}�b�v�A�A�C�R���A�J�[�\���A���^�t�@�C���̂ǂ̃I�u�W�F�N�g�ł������ł���Ƃ����킯�ł���B
�@Fig.4-3�̏o�͂́ATaro�N���X�̃C���X�^���X���쐬�����ɂ�������炸�A���ʂƂ���Person�N���X��getName���\�b�h���Ăяo���ꂽ���Ƃ��Ӗ����Ă���B���̂��Ƃ́Anew�L�[���[�h��p�������\�b�h�̒u�������͖��\�ł͂Ȃ����Ƃ������Ă���B�܂�APerson�^�̕ϐ����o�R���ăA�N�Z�X����ƁA�Ⴆ�ΏۂƂȂ�I�u�W�F�N�g��Taro�^�ł��낤�ƁA�R���p�C����Person�^�Ƃ��ď������Ă��܂��Ƃ������Ƃł���B�܂�Anew�L�[���[�h��p���Đ錾���ꂽ���\�b�h�́A�I�u�W�F�N�g�ɃA�N�Z�X����Ƃ��Ɏg�p�����f�[�^�^�̈Ⴂ�ɂ���āA�Ăяo���ꂽ��A�Ăяo����Ȃ������肷��A�Ƃ����킯�ł���B
Copyright© Digital Advantage Corp. All Rights Reserved.