Если internal сам класс - то нельзя никак.
Если internal конструктор по-умолчанию и нет других public конструкторов - то тоже нельзя.
Если есть public конструктор с параметрами, а вы хотите в своём классе определить дефолтный (без параметров), то вам нужно сделать как-то так:
допустим, конструктор класса-родителя такой:
public A(int param)
{
}
тогда ваш конструктор будет таким:
public B() : base(0)
{
}
где 0 - значение по-умолчанию, которое вы хотите передать;
если вам нужен тоже конструктор с параметром, тогда так:
public B(int a): base(a)
{
}
Теперь почему. Есть такое понятие -
доступность (видимость). В первом случае класс внутренний и вам он не виден вообще. Во втором вы не можете создать его экземпляр через конструктор и, соответсвенно, унаследоваться от него, поскольку вам не виден сам конструктор. Решение третьей проблемы я описал.