Nasıl ruby soyut bir sınıf uygulamak için?
Ruby'de soyut sınıf kavramı diye bir şey yok biliyorum. Ama hiç değilse bu konuda gitmek nasıl uygulanması gerekiyor? Gibi 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 oluşturmaya çalıştığımda, içten hariç yükseltecek olan A.new
arayacak.
Ayrıca, modüller örneği oluşturulamıyor ama çok kalıtsal olamaz. yeni yöntem Özel yapım da çalışmaz. Herhangi bir işaret var mı?
CEVAP
Sadece geç buraya düşmek için, soyut sınıf, especially because they can add methods to it on the fly başlatmasını biri durdurmak için bir sebep yok bence.
Ördek yazarak diller, Ruby gibi, bunların adı olup olmadığını belirlemek için çalışma zamanında veya yöntemleri yokluğu veya davranış/varlığı kullanın. Bir özet için geçerli olarak sorunuzu bu nedenleyöntemmantıklı
def get_db_name
raise 'this method should be overriden and return the db name'
end
ve bu hikayenin sonu hakkında olmalıdır. Java'da soyut sınıfları kullanmak için tek nedeni belli yöntemleri "dolu diğerleri ise" soyut sınıf içindeki davranışı. almak için ısrar etmek. Ördek-bir yazım dili, odak o seviyeye endişeler taşımak gerekir sınıfları/türleri, yöntemleri üzerinde değil.
Soru temelde Ruby yapıyor Java için kod-koku olan Java abstract
anahtar kelime, yeniden yaratmaya çalışıyorsun.
Nasıl bir soyut temel sınıf uygulayan ...
&Quot;geri arama uygulamak için nasıl&...
Nasıl bir sınıf zaten Ruby olup olmadı...
Koşullu bir sınıf uygulamak için en iy...
Nasıl Ruby alt veya üst durumda bir di...