元となるクラスの型のオブジェクトからは呼び出せるが、継承したクラスの型のオブジェクトからは
呼び出せない関数を作りたいのですが、どうすればいいでしょうか?

例えば public class Hoge と、それを継承した public class HogeHoge : Hoge があり、
Hoge には AAA() が実装されているとすると、

Hoge hoge = new Hoge();
HogeHoge hogehoge = new HogeHoge();

hoge.AAA(); // OK
hogehoge.AAA(); // エラー

といった感じにしたいです。