Design for container that holds multiple instances of same base class
Controllable class


can be abstract, it doesn't seem you will instantiate it
int x field shall be private, you don't use it anywhere


Party class


you declared variable of type PC with lower letters so object assignment shall be too pc = new PC ("PC", 1);
members = new ArrayList&lt;Controllable&gt;(); with Java 8 it is not necessary to declare list's type if you do this with variable declaration, so members = new ArrayList&lt;&gt;(); is enough


It is a good practice to make method arguments final, as well class fields if they are provided through constructor. It means their declared type cannot be changed.