最近正在学类的继承问题..可是个难题啊
用继承的方法求面积都不会!请大家帮忙,谢谢!!
public class AA
{
int a=1,b,c;
void fuzhi(int b,int c)
{
this.b=b;
this.c=c;
}
public void print()
{
System.out.println("圆形的面积是:");
System.out.println("长方形面积是:");
}
}
class abcd extends AA
{
int a=2;
public static void main(String args[])
{
abcd m=new abcd();
m.fuzhi(2,3);
m.print();
}
}
这个是我根据书上 初步拟订的方案 还没有逻辑!
[此贴子已经被作者于2007-9-28 10:34:48编辑过]
----------------解决方案--------------------------------------------------------
还没有求面积的方法嘛,用多态,让程序自己去判断该调用哪个求面积的方法,这样很好
----------------解决方案--------------------------------------------------------
很 模糊啊!版主 ! 我还没看到多态!但知道多态这个概念!
----------------解决方案--------------------------------------------------------
建议楼主把方法写全了,问的比较模糊啊
----------------解决方案--------------------------------------------------------
我刚才找到了一个程序,有了大概的了解了!我也给大家看一下!
import javax.swing.JOptionPane;
class Rectangle extends Shape
{
public double mianji(double c,double k)
{
return c * k;
}
}
class Square extends Shape
{
public double mianji(double c,double k)
{
return c * k;
}
}
class Circle extends Shape
{
public double mianji(double y,double P)
{
return P * y * P * y;
}
}
abstract class Shape
{
public abstract double mianji(double x,double y);
}
public class jj
{
public static void main(String[] dafdasdf)
{
final double P = 3.14;
System.out.println("输入长");
double c = Integer.parseInt(JOptionPane.showInputDialog(null, "Enter Number"));
System.out.println("输入宽");
double k = Integer.parseInt(JOptionPane.showInputDialog(null, "Enter Number"));
System.out.println("输入输入半径");
double y = Integer.parseInt(JOptionPane.showInputDialog(null, "Enter Number"));
Rectangle a = new Rectangle();
double cf1 = a.mianji(c,k);
System.out.println("长方形的面积为:"+cf1);
Square b = new Square();
double zf1 = b.mianji(c,k);
System.out.println("正方形的面积为:"+zf1);
Circle d = new Circle();
double yy1 = d.mianji(y,P);
System.out.println("圆形的面积为:"+yy1);
}
}
----------------解决方案--------------------------------------------------------
我能看明白程序的大概意思!但他是怎么继承的能跟我解释一下嘛?我知道extends是关键字!
程序的键盘输入在赋值方式蛮不错的!大家可以看看的!我搜集了!
[此贴子已经被作者于2007-9-28 11:01:16编辑过]
----------------解决方案--------------------------------------------------------
class Shape{
int a;
public void area(){
}
}
class Circle extends Shape{
public Circle(int a){
this.a=a;
}
public void area(){
System.out.println("Circle area:"+a*a*3.14);
}
}
class Square extends Shape{
public Square(int a){
this.a=a;
}
public void area(){
System.out.println("Square area:"+a*a);
}
}
public class ShapeTest {
public static void main(String args[]){
Shape s1=new Circle(2);
Shape s2=new Square(3);
s1.area();
s2.area();
}
}
刚刚写的,你可以参考下
----------------解决方案--------------------------------------------------------
Shape是一个抽象类,继承他的类必须重写它的抽象函数,即mianji(),Rectangel,Square,Circle都重写了它.然后在main函数里面生成一个对象,求面积.没看到多态,因为没有用到上转型对象.
----------------解决方案--------------------------------------------------------
是没有多态。如果要看多态的话,lz要记住is-a这个关键字,子类就是父类,这个概念很重要,比如Circle is a Shape,Square is a Shape。这样的话能够接受父类的方法也能够接受子类,并且会在调用方法的时候自动选择到底是选择哪个方法来调用。
----------------解决方案--------------------------------------------------------
class See{
void see(Parent p){
p.p();
}
}
class Parent{
void p(){
System.out.println("in Parent");
}
}
class Boy extends Parent{
void p(){
System.out.println("in Boy");
}
}
class Girl extends Parent{
void p(){
System.out.println("in Girl");
}
}
public class Poly {
public static void main(String args[]){
Parent p1=new Boy();
Parent p2=new Girl();
Parent p3=new Parent();
See s=new See();
s.see(p1);
s.see(p2);
s.see(p3);
}
}
这个比较乱
lz凑合着看看吧...
----------------解决方案--------------------------------------------------------