public class Pet{
protected String name;
protected int health;
protected String color;
}
默认protected,public不管是包内包外,还是对象、class,都可以调用public属性和方法
private 在private所在的class内部,都可以调用,class外部,都不可以调用
protected的设计初衷,就是子类调用父类的属性,不能被包外对象调用,可以被包内对象调用
Dog dog = new Dog("旺财");
new Dog()会创建两块内存,先分配父类的内存,然后分配子类的内存
父类如果是有参构造,则参数必须由子类的构造函数传入
Pet dog = new Dog("旺财");
new Dog()一次分配了两块内存,dog中存在的是父类内存的首地址
Pet dog;表示dog只能指向父类的内存空间,不能指向子类的内存空间
Pet dog = new Dog("旺财");
Dog d = (Dog)dog; //父类的引用,要访问子类对象的内存,需要进行指针的强制转换
System.out.println(d.strain);