Given that interfaces are also used to help hide information, giving the user only a subset of the possible methods they are allowed to use, and, let's say, I have a Person class and interface IPerson.
Now in main, I'm allowed to do
IPerson testy = new Person();
Person testy = new Person();
So really I'm not restricted from using Person still. So how does the
interface truly hide data?