Это потому, что для любого класса, если вы не определяете конструктор, компилятор считает, что присутствует конструктор по умолчанию без параметров. Также вы не сможете установить какие-либо закрытые члены базового класса, если только в своем производном классе вы явно не вызовете конструктор базового класса.
Это код C #. VB должен быть похожим.
class B
{
protected int aInt;
private int bInt;
public B()
{ }
public B(int myInt)
{
aInt = myInt;
}
}
class S : B
{
public S(int aInt, int bInt)
: base(bInt)
{
base.aInt = aInt;
}
}