public class A<T> where T : Stream {
 public T strm;
 public A() {}
}

public class B : A<FileStream> {
 public B() {
  strm = new FileStream("", FileMode.Open);
 }
}

public class C : A<MemoryStream> {
 public C() {
  strm = new MemoryStream();
 }
}