Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package page6;
- public class PlayingWithClones {
- public static void main(String[] args) throws CloneNotSupportedException {
- Cat cat = new Cat("Мурзик");
- Boy boy = new Boy("Андрей", cat);
- Boy boy2 = (Boy) boy.clone();
- System.out.println("Поверхностное клонирование:");
- System.out.println("Вот мой товарищ " + boy);
- System.out.println("А вот его клон: " + boy2);
- Cat cat2 = new Cat("Барсик");
- Girl girl = new Girl("Лиза", cat2);
- Girl girl2 = (Girl) girl.clone();
- System.out.println("Глубокое клонирование:");
- System.out.println("Вот моя подруга " + girl);
- System.out.println("А вот ее клон: " + girl2);
- }
- }
- class Boy implements Cloneable {
- public String name;
- public Cat cat;
- public Boy(String name, Cat cat) {
- this.name = name;
- this.cat = cat;
- }
- @Override
- public String toString() {
- return "мальчик " + name + " (" + super.toString() + ") и его " + cat;
- }
- @Override
- protected Object clone() throws CloneNotSupportedException {
- return super.clone();
- }
- }
- class Girl implements Cloneable {
- public String name;
- public Cat cat;
- public Girl(String name, Cat cat) {
- this.name = name;
- this.cat = cat;
- }
- @Override
- public String toString() {
- return "девочка " + name + " (" + super.toString() + ") и ее " + cat;
- }
- @Override
- protected Object clone() throws CloneNotSupportedException {
- Girl girl = new Girl(name, (Cat) cat.clone());
- return girl;
- }
- }
- class Cat implements Cloneable {
- private String name;
- public Cat(String name) {
- this.name = name;
- }
- @Override
- public String toString() {
- return "кот " + name + " (" + super.toString() + ")";
- }
- @Override
- protected Object clone() throws CloneNotSupportedException {
- return super.clone();
- }
- }
- //Поверхностное клонирование:
- //Вот мой товарищ мальчик Андрей (page6.Boy@15db9742) и его кот Мурзик (page6.Cat@6d06d69c)
- //А вот его клон: мальчик Андрей (page6.Boy@7852e922) и его кот Мурзик (page6.Cat@6d06d69c)
- //Глубокое клонирование:
- //Вот моя подруга девочка Лиза (page6.Girl@4e25154f) и ее кот Барсик (page6.Cat@70dea4e)
- //А вот ее клон: девочка Лиза (page6.Girl@5c647e05) и ее кот Барсик (page6.Cat@33909752)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement