Προς το περιεχόμενο

Java Quiz για δυνατούς λύτες


Blondeamon

Προτεινόμενες αναρτήσεις

Δημοσ.

Γειά σας!

For what it may be worth, σας στέλνω μια μερική λύση. Μερική κυρίως γιατί όπως είναι η εκφώνηση δεν μπορώ να πετύχω το αποτέλεσμα που ζητάει.

 

>
interface Nose {
   int getResult();
}

abstract class Picasso implements Nose {
   public int getResult() {
       return 7;
   }
} 

class Clown extends Picasso {

}

class Acts extends Picasso {
   public int getResult() {
       return 5;
   }
}

public class Clowns extends Clown {
   public static void main (String args[]){
       Picasso[] i = new Picasso[3];
       i[0] = new Acts();
       i[1] = new Clowns();
//        i[2] = new --------------
       
//        for (int x = 0; x < 3; x++)
       for (int x = 0; x < 2; x++) {
           System.out.println(i[x].getResult() + " " + i[x].getClass());
       }
   }
}


 

Το αποτέλεσμα που τυπώνει το πρόγραμμα είναι

>
5 class Acts
7 class Clowns

 

Για να δουλέψει, αναγκάστηκα να καταργήσω δύο γραμμές στην main και αγνόησα την 3η γραμμή στο output (κανένα 8 το παίρνω;:lol:)

 

Το "μυστικό" είναι στο polymorphic Picasso[]. Οι classes Acts και Clowns είναι subclasses της Nose, οπότε at runtime καλούνται οι getResult() στο class definition. Η Clowns δεν έχει δική της getResult(), οπότε το method call ανεβαίνει στο class hierarchy μέχρι να βρεί το implementation στην Picasso.:eek:

 

HTH

Δημοσ.

Γειά σας!

For what it may be worth, σας στέλνω μια μερική λύση. Μερική κυρίως γιατί όπως είναι η εκφώνηση δεν μπορώ να πετύχω το αποτέλεσμα που ζητάει.

 

>
interface Nose {
   int getResult();
}

abstract class Picasso implements Nose {
   public int getResult() {
       return 7;
   }
} 

class Clown extends Picasso {

}

class Acts extends Picasso {
   public int getResult() {
       return 5;
   }
}

public class Clowns extends Clown {
   public static void main (String args[]){
       Picasso[] i = new Picasso[3];
       i[0] = new Acts();
       i[1] = new Clowns();
//        i[2] = new --------------
       
//        for (int x = 0; x < 3; x++)
       for (int x = 0; x < 2; x++) {
           System.out.println(i[x].getResult() + " " + i[x].getClass());
       }
   }
}


 

Το αποτέλεσμα που τυπώνει το πρόγραμμα είναι

>
5 class Acts
7 class Clowns

 

Για να δουλέψει, αναγκάστηκα να καταργήσω δύο γραμμές στην main και αγνόησα την 3η γραμμή στο output (κανένα 8 το παίρνω;:lol:)

 

Το "μυστικό" είναι στο polymorphic Picasso[]. Οι classes Acts και Clowns είναι subclasses της Nose, οπότε at runtime καλούνται οι getResult() στο class definition. Η Clowns δεν έχει δική της getResult(), οπότε το method call ανεβαίνει στο class hierarchy μέχρι να βρεί το implementation στην Picasso.:eek:

 

HTH

Δημοσ.
Γειά σας!

For what it may be worth, σας στέλνω μια μερική λύση. Μερική κυρίως γιατί όπως είναι η εκφώνηση δεν μπορώ να πετύχω το αποτέλεσμα που ζητάει.

 

>
interface Nose {
   int getResult();
}

abstract class Picasso implements Nose {
   public int getResult() {
       return 7;
   }
} 

class Clown extends Picasso {

}

class Acts extends Picasso {
   public int getResult() {
       return 5;
   }
}

public class Clowns extends Clown {
   public static void main (String args[]){
       Picasso[] i = new Picasso[3];
       i[0] = new Acts();
       i[1] = new Clowns();
//        i[2] = new --------------
       
//        for (int x = 0; x < 3; x++)
       for (int x = 0; x < 2; x++) {
           System.out.println(i[x].getResult() + " " + i[x].getClass());
       }
   }
}


 

Το αποτέλεσμα που τυπώνει το πρόγραμμα είναι

>
5 class Acts
7 class Clowns

 

Για να δουλέψει, αναγκάστηκα να καταργήσω δύο γραμμές στην main και αγνόησα την 3η γραμμή στο output (κανένα 8 το παίρνω;:lol:)

 

Το "μυστικό" είναι στο polymorphic Picasso[]. Οι classes Acts και Clowns είναι subclasses της Nose, οπότε at runtime καλούνται οι getResult() στο class definition. Η Clowns δεν έχει δική της getResult(), οπότε το method call ανεβαίνει στο class hierarchy μέχρι να βρεί το implementation στην Picasso.:eek:

 

HTH

 

Εισαι παρα πολύ κοντά, απλά αντι για Clown βάλε Clowns και την Clowns ονομασε την Clownof76

 

Δηλαδή θα γίνει:

 

 

>
interface Nose {
   int getResult();
}

abstract class Picasso implements Nose {
   public int getResult() {
       return 7;
   }
} 

class Clown extends Picasso {

}

class Acts extends Picasso {
   public int getResult() {
       return 5;
   }
}

public class Clownof76 extends Picasso {
   public static void main (String args[]){
       Picasso[] i = new Picasso[3];
       i[0] = new Acts();
       i[1] = new Clowns();
//        i[2] = new Clownof76();
       
//        for (int x = 0; x < 3; x++)
       for (int x = 0; x < 2; x++) {
           System.out.println(i[x].getResult() + " " + i[x].getClass());
       }
   }
}


 

Το αποτέλεσμα που τυπώνει το πρόγραμμα είναι

>
5 class Acts
7 class Clowns
7 class Clownof76

 

 

-----Προστέθηκε 27/1/2009 στις 10 : 06 : 19-----

 

 

Λύση. Δεν το έχω τρέξει αλλά πιστεύω οτι τρέχει 99%!

 

>
interface Nose {
   int getResult();
}

abstract class Picasso implements Nose {
   public int getResult() {
       return 7;
   }
} 

class Clown extends Picasso {

}

class Acts extends Picasso {
   public int getResult() {
       return 5;
   }
}

public class Clownof76 extends Picasso {
   public static void main (String args[]){
       Picasso[] i = new Picasso[3];
       i[0] = new Acts();
       i[1] = new Clowns();
//        i[2] = new Clownof76();
       
//        for (int x = 0; x < 3; x++)
       for (int x = 0; x < 2; x++) {
           System.out.println(i[x].getResult() + " " + i[x].getClass());
       }
   }
}


 

Το αποτέλεσμα που τυπώνει το πρόγραμμα είναι

>
5 class Acts
7 class Clowns
7 class Clownof76

Δημοσ.
Γειά σας!

For what it may be worth, σας στέλνω μια μερική λύση. Μερική κυρίως γιατί όπως είναι η εκφώνηση δεν μπορώ να πετύχω το αποτέλεσμα που ζητάει.

 

>
interface Nose {
   int getResult();
}

abstract class Picasso implements Nose {
   public int getResult() {
       return 7;
   }
} 

class Clown extends Picasso {

}

class Acts extends Picasso {
   public int getResult() {
       return 5;
   }
}

public class Clowns extends Clown {
   public static void main (String args[]){
       Picasso[] i = new Picasso[3];
       i[0] = new Acts();
       i[1] = new Clowns();
//        i[2] = new --------------
       
//        for (int x = 0; x < 3; x++)
       for (int x = 0; x < 2; x++) {
           System.out.println(i[x].getResult() + " " + i[x].getClass());
       }
   }
}


 

Το αποτέλεσμα που τυπώνει το πρόγραμμα είναι

>
5 class Acts
7 class Clowns

 

Για να δουλέψει, αναγκάστηκα να καταργήσω δύο γραμμές στην main και αγνόησα την 3η γραμμή στο output (κανένα 8 το παίρνω;:lol:)

 

Το "μυστικό" είναι στο polymorphic Picasso[]. Οι classes Acts και Clowns είναι subclasses της Nose, οπότε at runtime καλούνται οι getResult() στο class definition. Η Clowns δεν έχει δική της getResult(), οπότε το method call ανεβαίνει στο class hierarchy μέχρι να βρεί το implementation στην Picasso.:eek:

 

HTH

 

Εισαι παρα πολύ κοντά, απλά αντι για Clown βάλε Clowns και την Clowns ονομασε την Clownof76

 

Δηλαδή θα γίνει:

 

 

>
interface Nose {
   int getResult();
}

abstract class Picasso implements Nose {
   public int getResult() {
       return 7;
   }
} 

class Clown extends Picasso {

}

class Acts extends Picasso {
   public int getResult() {
       return 5;
   }
}

public class Clownof76 extends Picasso {
   public static void main (String args[]){
       Picasso[] i = new Picasso[3];
       i[0] = new Acts();
       i[1] = new Clowns();
//        i[2] = new Clownof76();
       
//        for (int x = 0; x < 3; x++)
       for (int x = 0; x < 2; x++) {
           System.out.println(i[x].getResult() + " " + i[x].getClass());
       }
   }
}


 

Το αποτέλεσμα που τυπώνει το πρόγραμμα είναι

>
5 class Acts
7 class Clowns
7 class Clownof76

 

 

-----Προστέθηκε 27/1/2009 στις 10 : 06 : 19-----

 

 

Λύση. Δεν το έχω τρέξει αλλά πιστεύω οτι τρέχει 99%!

 

>
interface Nose {
   int getResult();
}

abstract class Picasso implements Nose {
   public int getResult() {
       return 7;
   }
} 

class Clown extends Picasso {

}

class Acts extends Picasso {
   public int getResult() {
       return 5;
   }
}

public class Clownof76 extends Picasso {
   public static void main (String args[]){
       Picasso[] i = new Picasso[3];
       i[0] = new Acts();
       i[1] = new Clowns();
//        i[2] = new Clownof76();
       
//        for (int x = 0; x < 3; x++)
       for (int x = 0; x < 2; x++) {
           System.out.println(i[x].getResult() + " " + i[x].getClass());
       }
   }
}


 

Το αποτέλεσμα που τυπώνει το πρόγραμμα είναι

>
5 class Acts
7 class Clowns
7 class Clownof76

Δημοσ.

Είσαι απόλυτα σωστός! Το έτρεξα και η λύση σου δουλεύει.

Με μπέρδεψε το

>Clownof76

. Για κάποιο λόγο το είδα ως

>
Clown of 76

(με κενά)

 

Dohh!

Δημοσ.

Είσαι απόλυτα σωστός! Το έτρεξα και η λύση σου δουλεύει.

Με μπέρδεψε το

>Clownof76

. Για κάποιο λόγο το είδα ως

>
Clown of 76

(με κενά)

 

Dohh!

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...