当前位置: 代码迷 >> Java相关 >> 子类继承父类的问题!难啊!
  详细解决方案

子类继承父类的问题!难啊!

热度:124   发布时间:2007-09-28 10:27:45.0
子类继承父类的问题!难啊!

最近正在学类的继承问题..可是个难题啊

用继承的方法求面积都不会!请大家帮忙,谢谢!!




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凑合着看看吧...


----------------解决方案--------------------------------------------------------
  相关解决方案