请问一下是不是继承了抽象类,则在main()函数中不能调用子类的成员函数。如图所示。
如图所示
在main()中。shape1能使用成员函数进行赋值。
而在Circle中,成员函数和成员变量定义在了Circle中。就在main()方法中调用不了。
请问这是为什么?
如图所示
在main()中。shape1能使用成员函数进行赋值。
而在Circle中,成员函数和成员变量定义在了Circle中。就在main()方法中调用不了。
请问这是为什么?
2016-10-19
不是,你在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()函数是子类自己独有的。编译没报错。
举报