 Now, what we've done so far, this is actually known as Implicit Casting, Implicit Casting. Now, what if I want to do Explicit Casting, Explicit Casting, instead of maybe putting it up there with Person, okay Person, Person has access, it has a get name, what if I turned it into an object, again, object, alright, well, seems to error out all the stuff, because P is an object, it's not a person, and I want to stress this enough. Even though student, which is what we're doing, even though student has get name, objects, objects do not have a get name, they have a two string, they have a few other little methods here and there, but it's very generic, it has nothing. So what I can do, however, is I can do what's known as Explicit Casting, Person, New P equals Person P. So what am I doing? Well, now, even though I know student is a student, right now it's being treated very generically like an object, I need to at least tell it where in sort of the hierarchy to act like, and so now what I've done is I've said, take this object, turn it into a person, give me that person's name. We compile this up again, New P, sorry, New P, and we, hold on, there we are. We compile this up, notice there was no errors. So what I'm saying is this very generic thing, object, I want to turn it into a person. I want to force it. This is no different than if I were to say int x equals int 3.14, we're doing the exact same thing, relatively. So now when I run this, Mr. Adam, because we have that method now, we have that access. If I were to get rid of say this override over here, just because I want to demonstrate it, I compile it again, Java C, Java, Adam. If I did student, and I said to just do my two string with student, the same thing happens.