It's hard to put a title on this, and if you can think of one better, I'll update it. But what I'm looking for is a way to be able to reference a static value from an instance object. For example, let's say you have an abstract class called `Animal` and two subclasses called `Cat` and `Dog`. On the abstract class, I'd like to have an instance variable called `GenusSpecies`, where, of course, this wouldn't have a value at the Animal level, because its an abstract class, but every `Cat` will have the same value, but it will differ from all the Dogs. However, I'd want to have the `Cat` and `Dog` classes to have a static value per type of instance, but I don't want to have to set it's value at each instance, but I want to be able to reference it like an instance variable since I'll be having a generic variable like.

```
Animal a = new Cat("Garfield");

```

but I expect

`a.GenusSpecies == "Felis catus"` 

but I don't want to have to put 
`GenusSpecies = "Felis catus";`
 in the constructor. But also, it would be nice to be able to also reference a `Cat.GenusSpecies` static value as it's always going to be the same per instance of the Cat type. I know at some point I'm splitting the difference between the two ways to reference it, but is there any way to achieve both reference types? I hope I've explained this correctly.