razvandragos29 Posted July 28, 2014 Report Posted July 28, 2014 (edited) Salut cum am spus si in topicul trecut cel cu Delagation in java https://rstforums.com/forum/87471-delegation-java.rst invat dupa cartea Thinking in Java si am intampinat cateva probleme la acesta chestie.Am urmatorul exercitiu de facut din carte Modify Detergent.java so that it uses delegation aceasta este clasa Detergent.java class Cleanser {private String s = "Cleanser";public void append(String a) { s += a; }public void dilute() { append(" dilute()"); }public void apply() { append(" apply()"); }public void scrub() { append(" scrub()"); }public String toString() { return s; }public static void main(String[] args) {Cleanser x = new Cleanser();x.dilute(); x.apply(); x.scrub();print(x);}}public class Detergent extends Cleanser {// Change a method:public void scrub() {append(" Detergent.scrub()");super.scrub(); // Call base-class version}// Add methods to the interface:public void foam() { append(" foam()"); }// Test the new class:public static void main(String[] args) {Detergent x = new Detergent();x.dilute();x.apply();x.scrub();x.foam();print(x);print("Testing base class:");Cleanser.main(args);}} si acesta este rezolvare mea class Cleanser1{ private String s="Cleanser"; public void append(String a) {s+=a; } public void dilute() {append("dilute()") ;} public void apply(){append("apply()");} public void scrub(){append("scrub()"); } public String toString(){ return s; }}public class Detergent1 {Cleanser1 x=new Cleanser1(); public void append(String s) {x.append(s);} public void dilute() {x.append("dilute");} public void apply(){ x.append("apply()"); }public void scrub() { x.append("Aply()");}public void foam(){ x.append("Foam()");}public String toString(){ return x.toString();}public static void main(String args[]) { Detergent x=new Detergent(); x.apply(); print(x);}} am cautat pe net rezolvarea exercitiului si am gasit asta http://greggordon.org/java/tij4/reusing/DetergentDelegation.java nu inteleg de ce tipu spune ca anumite metode erau delegate in totalitate si altele nu si de ce a suprascris metoda append in clasa Detergent deoarece in exemplu din carte acesta mostenea toatea metodele si rescria doar 2 din ele scrub si apply . Edit:Am gasit ghidul cu solutii al cartii care este realizat chiar de autor si a rezolvat acest exercitiu exact ca mine.PS:M2G mi-a spus sa fac acest topic "Intrebari Java" si cand am probleme sa postez aici in acest mod nu fac 100 de topicuri pentru toate probleme din carte . Edited July 29, 2014 by razvandragos29 Quote