黑马程序员技术交流社区
标题:
内部类问题
[打印本页]
作者:
时光♪微凉
时间:
2014-5-10 00:27
标题:
内部类问题
本帖最后由 时光♪微凉 于 2014-5-10 10:08 编辑
class Car extends Animal{
@Override
void chi() {
System.out.println("吃鱼");
}
XinZang x = new XinZang();
x.tiaoDong();//编译出错,怎么调用内部类的方法
}
class Dog extends Animal{
@Override
void chi() {
System.out.println("吃骨头");
}
}
复制代码
作者:
时光♪微凉
时间:
2014-5-10 00:30
少了部分,按错键了发了
abstract class 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();//编译出错,怎么调用内部类的方法
}
class Dog extends Animal{
@Override
void chi() {
System.out.println("吃骨头");
}
}
复制代码
作者:
龙健
时间:
2014-5-10 01:00
楼主只是一时粗心大意了吧,你怎么可以直接在类里面的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("吃骨头");
}
}
复制代码
作者:
时光♪微凉
时间:
2014-5-10 10:07
龙健 发表于 2014-5-10 01:00
楼主只是一时粗心大意了吧,你怎么可以直接在类里面的new对象呢,你的方法是没有错,只是放错位置了,你想 ...
好像是的,太冒失了,呵呵
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2