2013-07-10 18 views
11

sınıfında Sealed'de Scala'da, bir temel sınıf veya özellik (arabirim) mühürlenerek tanımlanabilir, böylece bu sınıfı genişletmeye izin verilen tek sınıflar aynı sınıfa yerleştirilmelidir ..NET sınıfı

Bu, kitaplıkları kodlarken, .NET'te herhangi bir eşdeğer var mıdır?

+0

, sen ELI5 lütfen? (Ne istediğini biliyorum, ama nedenini bilmiyorum) – jnovacho

+0

Bu modelde "gelişmiş" numaralar uygulayabilirsiniz ve bu gerçekten faydalıdır. Soyut sınıfınız için sadece belirli sayıda uygulamanın olduğunu garanti edebilirsiniz – Edmondo1984

+0

Oh Görüyorum! Teşekkürler. – jnovacho

cevap

21

Bunu simüle etmenin tek yolu, soyut sınıfta özel bir kurucuya sahip olmak ve iç içe geçmiş sınıflar olarak uygulamayı sağlamaktır.

Örnek I avantaj görmüyorum

public abstract class Foo 
{ 
    private Foo(int k) {} 

    public class Bar : Foo 
    { 
    public Bar() : base(10) {} 
    } 
} 
+5

+1. Veya bir 'internal' soyut sınıfının kurucusunu işaretlemek, sınıflar için alabileceğiniz başka benzer bir seçenektir. –