楼主只是一时粗心大意了吧,你怎么可以直接在类里面的new对象呢,你的方法是没有错,只是放错位置了,你想,如果你把它放在这个位置,它是怎样加载进内存的,有是怎样取出来的,学过反射你就知道了,你这样的做法是不合理的,,,这是我个人看法,不知道对你有没有一帮助,如下就可以了
- package cn.itheima.Socket;
- public class tiaodong {
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Animal c = new Car();
- c.chi();
- }
- }
- abstract class Animal{
- Animal(){}
- abstract void chi();
- class XinZang{
- void tiaoDong(){
- System.out.println("心脏在跳动");
- }
- }
- }
- class Car extends Animal{
- @Override
- void chi() {
- System.out.println("吃鱼");
- XinZang x = new XinZang();
- x.tiaoDong();
- }
- // XinZang x = new XinZang();
-
- //super.tiaoDong();//编译出错,怎么调用内部类的方法
- }
- class Dog extends Animal{
- @Override
- void chi() {
- System.out.println("吃骨头");
- }
-
- }
复制代码 |