Добрый день! Подскажите: 1. почему недостаточно сделать implements Serializable только для класса C? 2. почему сейчас возникает ошибка NotSerializableException?
package com.javarush.task.task20.task2016;

import java.io.*;
/*
Минимум изменений
*/
public class Solution {
    {
        C objectOfClassC = new C("CName");
        try {
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            ObjectOutputStream ous = new ObjectOutputStream(bos);
            ous.writeObject(objectOfClassC);
            ous.close();

            ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(bos.toByteArray()));
            C newObjectOfClassC = (C)ois.readObject();
            ois.close();
        }
        catch (IOException e){
            e.printStackTrace();
        }
        catch (ClassNotFoundException e){
            e.printStackTrace();
        }
    }

    public class A implements Serializable {
        String name = "A";

        public A(String name) {
            this.name += name;
        }

        @Override
        public String toString() {
            return name;
        }
    }

    public class B extends A {
        String name = "B";

        public B(String name) {
            super(name);
            this.name += name;
        }
    }

    public class C extends B {
        String name = "C";

        public C(String name) {
            super(name);
            this.name = name;
        }
    }

    public static void main(String[] args) {
        //C objectOfClassC = new C("CName");
        Solution sol = new Solution();


    }
}