如果Pet是一个抽象类而且是Cat的父类,那么下列代码中正确的是()
Cat cat = new Pet();这是错的吗 为什么
------解决方案--------------------
因为Pet是一个抽象类,抽象类是不能被实力化的。
------解决方案--------------------
应该是Pet p=new Cat();
Pet是抽象类,不能被实例化
Cat是Pet的子类,Pet类型的引用能指向Cat,就像是猫是宠物一样。。宠物是猫就错了
深层的还是要看书
------解决方案--------------------
首先,抽象类不能被实例化。顶1楼
其次,就算Pet不是抽象类,这样写也是不对的。
父类的实例化对象不可以直接赋给子类引用,需要类型转换;但是反过来是可以的,子类的实例化对象可以赋给父类引用