PDA

View Full Version : سوال: خطا در ارث بری ؟!



qweewq22
چهارشنبه 07 اردیبهشت 1390, 14:22 عصر
سلام به همه اساتید
آقا من یه تیکه کد مربوط به ارث بری نوشتم ولی نمی دونم مشکلش چیه میشه بگین اشکال من کجاست
و در قسمتی ** مشخص شده پیغام خطا میده:متفکر:




package javaapplication20;

class box{
int a,b,c;
box(int a1,int b1,int c1){
a=a1;
b=b1;
c=c1;

}
int ret(){
return a*b*c;
}


}


** class subbox extends box{
int f2;
int k;



void retSubBox(){
System.out.println("a*b*c*f is "+a*b*c);
System.out.println("a*b*c*f*k is "+a*b*c*k);
}
}
public class Main {


public static void main(String[] args) {
box obbox=new box(3,5,7); //ERORR--> box obbox=new box();
System.out.println("mutiple super-Class is = "+obbox.ret());
subbox objsub=new subbox();
objsub.f2=10;
objsub.k=2;
objsub.retSubBox();




}

}

masterprogrammer
چهارشنبه 07 اردیبهشت 1390, 14:50 عصر
باید تو کلاس بچه همون کانستراکتور پدر (در صورتی که از کانستراکتور دیفالت استفاده نکنه) وجود داشته باشه و توش به صورت super() کانستراکتر پدر در اولین خط صدا زده بشه ینی :


subbbox(int a1,int b1,int c1){
super(a1,b1,c1)
}

qweewq22
چهارشنبه 07 اردیبهشت 1390, 15:33 عصر
بازم متوجه نشدم :لبخند:
میشه یکم ساده تر بگین ؟! :افسرده:
و بگین که دقیقا کجا(خط چندم) چه کدی بنویسم ؟

masterprogrammer
چهارشنبه 07 اردیبهشت 1390, 17:48 عصر
** class subbox extends box{

int f2;

int k;

subbbox(int a1,int b1,int c1){

super(a1,b1,c1)

}


void retSubBox(){

System.out.println("a*b*c*f is "+a*b*c);

System.out.println("a*b*c*f*k is "+a*b*c*k);

}

}

qweewq22
چهارشنبه 07 اردیبهشت 1390, 21:17 عصر
بازم مشکلم حل نشد این پیغام رو میده :گریه:
cannot find symbol
symbol: constructor box() d

masterprogrammer
پنج شنبه 08 اردیبهشت 1390, 02:06 صبح
این کد الان بدون خطا تو اکلیپس اجرا میشه :



class box{

int a,b,c;

box(){

}
box(int a1,int b1,int c1){

a=a1;

b=b1;

c=c1;



}

int ret(){

return a*b*c;

}





}





class subbox extends box{

int f2;

int k;

subbox(){

}

subbox(int a1,int b1,int c1){

super (a1,b1,c1);
}


void retSubBox(){

System.out.println("a*b*c*f is "+a*b*c);

System.out.println("a*b*c*f*k is "+a*b*c*k);

}

}

public class Main {

public static void main(String[] args) {

box obbox=new box(3,5,7); //ERORR--> box obbox=new box();

System.out.println("mutiple super-Class is = "+obbox.ret());

subbox objsub=new subbox();

objsub.f2=10;

objsub.k=2;

objsub.retSubBox();

}



}

با توجه به داده ها خروجیش هم اینه :

mutiple super-Class is = 105
a*b*c*f is 0
a*b*c*f*k is 0

qweewq22
پنج شنبه 08 اردیبهشت 1390, 15:06 عصر
میشه در مورد قسمت های *** یه توضیخ بدین


class box{

int a,b,c;

*** box(){

}
box(int a1,int b1,int c1){

a=a1;

b=b1;

c=c1;

}

int ret(){

return a*b*c;

}

}


class subbox extends box{

int f2;

int k;

***subbox(){

}

*** subbox(int a1,int b1,int c1){

*** super (a1,b1,c1);
}