«abstract-class» etiketlenmiş sorular

Soyut sınıflar, somutlaştırılamayan sınıflardır. Birkaç somut sınıfa ortak işlevsellik ve arayüz özellikleri sağlamak için varlar.

11
Saf sanal işlev neden 0 ile başlatılır?
Her zaman saf bir sanal işlev beyan ederiz: virtual void fun () = 0 ; Yani, her zaman 0'a atanır. Ne anlamak bu NULL için bu işlev için vtable giriş başlatmak olduğunu ve burada başka bir değer derleme zamanı hatası ile sonuçlanır olduğunu. Bu anlayış doğru mu değil mi?

6
Soyut Sınıfları Test Etme
Soyut bir sınıfın somut yöntemlerini PHPUnit ile nasıl test edebilirim? Testin bir parçası olarak bir tür nesne yaratmamı beklerdim. Yine de, bunun için en iyi uygulama veya PHPUnit buna izin veriyorsa hiçbir fikrim yok.


19
Visual Studio: Bir temel sınıftan miras alınan tüm sınıfları nasıl gösterebilirim?
Visual Studio'da, bir temel sınıftan miras alınan tüm sınıfları nasıl gösterebilirim? Örneğin , ASP.NET MVC'de birkaç ' ActionResult ' türü vardır ve bunların tümü temel sınıftan miras alır / uygular ActionResult. Sadece 'bilmiyorsanız' Viewve Jsongeçerli ActionResulttürler olmadığı sürece , bu bilgiyi kolayca bulabilmenin bir yolu yoktur. Lütfen bana yanlış olduğunu …

3
C #: Soyut sınıfların arayüzleri uygulaması mı gerekiyor?
C #'daki test kodum: namespace DSnA { public abstract class Test : IComparable { } } Aşağıdaki derleyici hatasıyla sonuçlanır: error CS0535: 'DSnA.Test' does not implement interface member 'System.IComparable.CompareTo(object)' Sınıf yana Testbir olan soyut sınıf , neden derleyici arabirimini uygulamak üzere bu gerektiriyor? Bu gereklilik sadece somut dersler için zorunlu …

11
Swift Dilinde soyut işlevler
Hızlı bir dilde soyut bir işlev oluşturmak istiyorum. Mümkün mü? class BaseClass { func abstractFunction() { // How do I force this function to be overridden? } } class SubClass : BaseClass { override func abstractFunction() { // Override } }

9
PHP soyut özellikleri
PHP'de soyut sınıf özelliklerini tanımlamanın herhangi bir yolu var mı? abstract class Foo_Abstract { abstract public $tablename; } class Foo extends Foo_Abstract { //Foo must 'implement' $property public $tablename = 'users'; }
126 php  oop  abstract-class 

7
Bir arabirim uygulayan soyut bir sınıf neden arabirimin yöntemlerinden birinin bildirimini / uygulamasını kaçırabilir?
Bir arabirimi uygulamak için soyut bir sınıf kullandığınızda Java'da ilginç bir şey olur: arabirimin yöntemlerinden bazıları tamamen eksik olabilir (yani ne soyut bir bildirim ne de gerçek bir uygulama mevcut değildir), ancak derleyici şikayet etmez. Örneğin, arayüz verildiğinde: public interface IAnything { void m1(); void m2(); void m3(); } aşağıdaki …


17
Ruby'de soyut bir sınıf nasıl uygulanır?
Ruby'de soyut sınıf kavramı olmadığını biliyorum. Ama eğer uygulanması gerekiyorsa, nasıl yapılmalı? Bir şey denedim ... class A def self.new raise 'Doh! You are trying to write Java in Ruby!' end end class B < A ... ... end Ama B'yi somutlaştırmaya çalıştığımda, içsel A.newolarak istisnayı artıracak olan çağrı yapacak. …

10
Pimpl deyimi ile Saf sanal sınıf arayüzü
Bir programcıyı Pimpl deyimini ya da saf sanal sınıfı ve kalıtımı seçmeye ne yönelteceğini merak ediyordum. Pimpl deyiminin her bir genel yöntem ve nesne oluşturma ek yükü için açık bir ek dolaylama ile geldiğini anlıyorum. Öte yandan, Pure sanal sınıf, kalıtımsal uygulama için örtük indireksiyon (vtable) ile birlikte gelir ve …

3
Python soyut sınıflarında soyut özellikler nasıl oluşturulur
Aşağıdaki kodda, bir temel soyut sınıf oluşturuyorum Base. Miras alan tüm sınıfların özelliği Basesağlamasını nameistiyorum, bu yüzden bu özelliği bir @abstractmethod. Sonra bir alt sınıf oluşturdum Base, denilen Base_1, bazı işlevler sağlaması ama yine de soyut kalması amaçlanıyor. Orada hayır namemülkiyet Base_1, ama yine de piton bir hata olmadan bu …


4
"staticmethod" ve "abc.abstractmethod": Karışacak mı?
Python uygulamamda hem a hem de staticmethodan olan bir yöntem yapmak istiyorum abc.abstractmethod. Bunu nasıl yaparım? Her iki dekoratörü de uygulamayı denedim ama işe yaramadı. Bunu yaparsam: import abc class C(object): __metaclass__ = abc.ABCMeta @abc.abstractmethod @staticmethod def my_function(): pass Bir istisna yaşıyorum * ve bunu yaparsam: class C(object): __metaclass__ = …

6
Soyut sınıflar için adlandırma kuralları
Bir keresinde Microsoft tarafından öne sürülen kılavuzun, soyut olduğu gerçeğini ortadan kaldırmak için soyut bir sınıfa "Temel" sonekini eklemek olduğunu çok iyi hatırlıyorum. Dolayısıyla, böyle sınıfları System.Web.Hosting.VirtualFileBase, System.Configuration.ConfigurationValidatorBase, System.Windows.Forms.ButtonBase, ve, tabii ki, System.Collections.CollectionBase. Ama fark ettim ki, son zamanlarda Çerçeve'deki pek çok soyut sınıf bu kuralı takip ediyor gibi görünmüyor. …

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.