用的C#;
比如有个abstract class叫item,其他两个类classA和classB都继承item;
使用工厂模式创建一个对象,新建的这个对象是item类,我能通过obj.getType().Name方法判断这个类实际上是classA还是classB;
在我知道这个类实际上是classA还是classB之后,如果想使用classA或者classB他们自己的方法,我应该怎么办?
刚开始接触设计模式这些知识,还希望各位给一些建议!
Jawapan anda
1 jawapan
面向对象的特性是 抽象 封装 继承 多态
如果A和B有完全不同且和item无关的方法 应该使用接口实现
abstract class item { } interface IclassA { void a(); } interface IclassB { void b();} class classA : item, IclassA { public void a() { throw new NotImplementedException(); } } class classB : item, IclassB { public void b() { throw new NotImplementedException(); } }
item item = new classA(); if (item is IclassA) { var itemA = item as IclassA; itemA.a(); }
Alat panas Tag
Soalan panas
Bagaimana untuk menghantar tatasusunan ke dalam prosedur tersimpan SQL Server
2026-01-31 22:24:05
Apa yang perlu dilakukan dengan masalah mysqli? Ralat seperti mysqli_fetch_array(): Argumen #1 mestilah jenis mysqli_result dan sebagainya
2026-01-31 22:02:53
Tukar rentetan JavaScript dalam notasi titik kepada rujukan objek
2026-01-31 21:22:07
Ralat MySQL #2014 - Perintah tidak segerak; anda tidak boleh menjalankan arahan ini sekarang [ditutup]
2026-01-31 21:01:19
Bagaimanakah cara saya memformat tarikh dalam JavaScript?
2026-01-31 20:43:18
Alat popular
vc9-vc14 (32+64 bit) koleksi perpustakaan masa jalan (pautan di bawah)
Muat turun koleksi perpustakaan runtime yang diperlukan untuk pemasangan phpStudy
VC9 32-bit
VC9 32-bit phpstudy pustaka masa jalan persekitaran pemasangan bersepadu
Kotak alat pengaturcara PHP versi penuh
Programmer Toolbox v1.0 PHP Persekitaran Bersepadu
VC11 32-bit
VC11 32-bit phpstudy pustaka masa jalan persekitaran pemasangan bersepadu
SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan
Topik panas
Artikel Panas
Apakah yang perlu saya lakukan jika saya tidak selalu mendapat tempat itu? Strategi penggiliran dan pengimbangan semula berbilang mata wang Ouyitun Bibao
2026-04-04
By DDD
Adakah strategi Martingale berkesan? Penjelasan terperinci tentang tetapan parameter robot Ouyi DCA
2026-04-03
By DDD
Bagaimana untuk menjalankan skrip Python_Penjelasan terperinci tentang pelbagai cara untuk menjalankan skrip Python dan operasi baris arahan
2026-04-03
By DDD
Bagaimana untuk menggunakan Urutan Bersarang dalam Tayangan Perdana? (Organisasi Projek)
2026-04-04
By 下次还敢
7 Kabel Thunderbolt 4 Terbaik: Kabel Yang Mengaum
2026-04-05
By DDD






