类在方法区中的存储(非静态内容)
一:测试代码
package xyz.xx.day02.down;
public class OOPTest1 {
public static void main(String[] args) {
Cat cat = new Cat("咪咪",1,"白色");
System.out.println(cat);
Animal ani = new Cat("咪咪",2,"白色");
System.out.println(ani.name);
System.out.println(ani.age);
Cat cat1 = (Cat)ani;
System.out.println(cat1.name);
System.out.println(cat1.age);
System.out.println(cat1.color);
System.out.println(cat1);
}
}
class Animal{
String name;
int age;
public Animal(){}
public Animal(String name, int age){
this.name = name;
this.age = age;
}
public void eat(){
System.out.println("一般进食...");
}
public void sleep(){
System.out.println("一般睡觉...");
}
@Override
public String toString() {
return "Animal{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
class Cat extends Animal{
String color;
public Cat(){}
public Cat(String name, int age, String color){
super(name,age);
this.color = color;
}
@Override
public void eat(){
System.out.println("猫的进食...");
}
@Override
public void sleep(){
System.out.println("猫在睡觉...");
}
@Override
public String toString() {
return "Cat{" +
"name='" + name + '\'' +
", age=" + age +
", color='" + color + '\'' +
'}';
}
}
class Dog extends Animal{
String color;
boolean kind;
public Dog(){}
public Dog(String name, int age, String color, boolean kind){
super(name,age);
this.color = color;
this.kind = kind;
}
@Override
public void eat(){
System.out.println("狗的进食...");
}
@Override
public void sleep(){
System.out.println("狗在睡觉...");
}
@Override
public String toString() {
return "Dog{" +
"name='" + name + '\'' +
", age=" + age +
", color='" + color + '\'' +
", kind=" + kind +
'}';
}
}
二:图示解析