へたれの日々

.NETとへたれな僕の奮闘日記

  ホーム :: 連絡をする :: 同期する  :: Login
投稿数  6  :: 記事 38 :: コメント 3571 :: トラックバック 2

記事カテゴリ

書庫

日記カテゴリ

リンク

抽象クラスは、基底クラスとなることを目的としたクラスです。

このクラスには抽象メソッドを宣言することができますが、実装を持つことができないため、メソッドの宣言は単にセミコロンで終わり、

シグネチャに続く中かっこ ({ }) はありません。

抽象クラス・メソッドを宣言するには abstract を指定します。

  • abstract class クラス名
    {
        abstract 戻り値型 メソッド名();
    }

 

それでは、なぜ基底クラスでなければならないのかというと、このクラスは static に指定したり、インスタンスを生成することができないため、

単独ではなんの意味もありません。

このクラスは、派生クラスからオーバーライドすることにより始めて意味のあるクラスとなります。

これは、インターフェイスを実装するのように、派生クラスで実装して欲しいメソッドがある場合に使用します。

最後に、なぜオーバーライドすることができるのか疑問に思うかもしれませんが、実は指定した abstract とは virtual と同じで仮想メソッドにすることができます。

そのため、abstract と virtual は併用することができません。

抽象クラスについて、より詳しく知りたい方は ここ を参考にするとよいです。

 

//サンプル38

using System;

namespace ConsoleApplication
{
    abstract class BaseClass // 抽象クラス
    {
        protected int _a;
        protected int _b;

        // 抽象メソッド。{}の中は定義できません。派生クラスで再定義します。
        public abstract void AbstractMethod( int a , int b );
        // 抽象プロパティ。こちらは、{}の中に set または get を指定することができます。
        public abstract int Sum    { get; }
    }

    class MyClass : BaseClass
    {
        public override void AbstractMethod( int a , int b )
        {
            base._a = a;
            base._b = b;
        }

        public override int Sum
        {
            get
            {
                return _a  + _b;
            }
        }

        static void Main()
        {
            MyClass o = new MyClass();
            o.AbstractMethod( 5 , 8 );
            Console.WriteLine(o.Sum);
        }
    }
}

投稿日時 : 2007年1月19日 16:49

コメント

# ngiHfDxWPfxsZjRSW 2014/07/19 3:47 http://crorkz.com/
tSpVSi I am so grateful for your article.Much thanks again. Will read on...

# GcbbcQlDukbrLNqBj 2014/08/28 12:35 http://crorkz.com/
tmCBJ1 F*ckin' amazing things here. I am very happy to look your post. Thanks so much and i am taking a look ahead to touch you. Will you kindly drop me a e-mail?

# lwuUlOVXvv 2014/08/29 20:03 http://criminallawyersottawa.com
Wonderful site. A lot of useful information here. I'm sending it to some pals ans also sharing in delicious. And certainly, thanks in your sweat!

# raCngOoCVw 2014/09/08 23:36 https://www.youtube.com/watch?v=mSbbytrVLHY
It's hard to search out knowledgeable people on this topic, however you sound like you realize what you're speaking about! Thanks

# CfDYjPAGwG 2014/09/09 11:06 http://vender-na-internet.com/luis-souto/
I've recently started a web site, the info you provide on this website has helped me greatly. Thanks for all of your time & work.

# coqoHwdTSxw 2014/09/12 21:35 http://www.instructables.com/id/EQ2PUHKHZV3OWBZ/
I will right away grasp your rss feed as I can not in finding your email subscription hyperlink or e-newsletter service. Do you have any? Please let me recognize so that I could subscribe. Thanks.

# SQwzkFMvgqFLsSrMvT 2014/09/18 16:37 http://tyler64.info/story.php?id=100803
XiXJ8f Appreciate you sharing, great blog post. Want more.

# Where I can find Erin McCarthy 14 ebooks PDF Collection To Download? To http://c.cacc.pw/5f 2014/12/16 7:46 JIzeMEotje
James Clavell 6 ebooks Collection PDF MOBI EPUB To Download go to http://or.hwv.pw/wj1

コメントの投稿

タイトル:
名前:
Url:
コメント: