I'm not sure what you are trying to do with the transient command, or exactly what problem you have.
While using transient does remove Breed from being written to the file as an Object, in Dog.writeObject you specifically use writeObject to write Breed to the file as an Object. I believe that's the source of the error.
How to correct it depends on what you are trying to do. One option is to chang Breed to Serializable, or to remove transient from Breed. Or, another option would be to leave Breed without Serializable and keep transient and add a write function in Breed that is called from Dog.writeObject, and remove/replace oos.writeObject(this.breed) with this.breed.writeObject(oos).
Similar comments apply to the readObject applied to Breed.
You showed up just in time for the waffles! And this tiny ad:
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop