java内存图

学习java已有半个月,画了简单的内存图,多指教

//猫类

public class Cat extends Animal{
  //Method
  public void eat(){
    System.out.println( "猫吃鱼" );
  }

}

//狗类

public class Dog extends Animal{
  //Method
  public void eat(){
  System.out.println( "狗吃肉" );
  }
}

public class Person{
// 养狗
  public void feed(Dog d){
    d.eat();
}

// 养猫
public void feed(Cat c){
  c.eat();
  }
}

/** 思路:
* 一个人要养宠物,有好多种,老是换宠物养.
* 要求,尽可能少的改动代码,实现不同动物之间切换
*
* Client.class
* Person.class
* Animal.class
* Dog.class
* Cat.class
*
* method-->feed(写在哪里,人还是具体的动物里面)
*
* 方法调用的多态:
* 方法的形参是父类的引用,但是实际传值是子类的对象
*
*/
public class Client{
  public static void main(String[] args){
  Person p = new Person();
  Dog d = new Dog();
  Cat c = new Cat();

  //Animal a = new Animal();
  //Animal a = new Dog();//父类的引用指向子类的对象

  p.feed(d);//方法的形参和实参也可以多态,形参声明的时候是父类的引用,但是实参传值的时候是子类对象的吧
  p.feed(c);


  }
}

原文地址:https://www.cnblogs.com/xcxcxc/p/4364033.html