When you assign an int to long , all that happens is an implicit conversion. longOne is the actual long (as if you initialized it as 1L ), not int , masquerading as long if you get a drift.
That is, int (or Int32 ) and long (or Int64 ) are not related to inheritance or implementation; they just become convertible because both are integer types of numbers.
Boltclock
source share