慕田峪7021683
2016-10-19 17:37
如图所示
在main()中。shape1能使用成员函数进行赋值。
而在Circle中,成员函数和成员变量定义在了Circle中。就在main()方法中调用不了。
请问这是为什么?
恩没事
不是,你在main函数里面创建对象时是小转大了,即你在创建Circle对象时是Shape shape2=new Circle();这样的话,用户在调用子类对象方法时只能调用子类继承父类或者子类重写父类的方法,而你写的这个父类刚好是一个抽象类,则子类对象调用方法时只能调用父类的抽象方法,其他方法已经屏蔽了。个人认为与接口没有特别大的关系。
Shape rt=new Rectangle(3.0f,4.0f); rt.Area(3.0f, 4.0f); rt.Circumference(3.0f, 4.0f); Circle cl=new Circle(5.0f, 3.14f); cl.Area(5.0f, 3.14f); cl.Circumference(5.0f, 3.14f); cl.shuchu();
这是我写的主函数的一部分,其中shuchu()函数是子类自己独有的。编译没报错。
接口对象指向引用对象只可以调用引用对象实现的接口方法,不能调用引用对象自己的方法。
我是这样理解的。
Java入门第二季 升级版
530561 学习 · 6091 问题
相似问题