Кошмарная архитектура.
Сделайте класс Table абстрактным, сделайте там общие для всех дочерних классов методы, абстрактные методы, свойство tableName - protected с пустым значением. В дочерних классах все переопределяйте, в коде работайте с абстракцией Table, но с конкретными экземплярами.
Родитель не должен ничего знать о своих потомках, это рушит всю логику.