I would say.. that isn't a kotlin specific thing, I would say that is a best practice generally in coding. Unless the objects support it, I'm not sure why you would really want to create an API that displays Number, but really expects Double. That might not be as bad when you're talking about using multiple types of number children, with different code for each case.