/ / użyj 2 klasy, wywołując tylko jedną klasę - oop, styl kodowania

użyj 2 klas, wywołując tylko jedną klasę - oop, styl kodowania

class merged(){


//i want to be able to use class sample1 and sample2 by just calling this merged class
}

class sample1(){}
class sample2(){}

Czy robienie tego nie jest idealne? czy możesz zasugerować, jak mogę to skuteczniej wdrożyć?

Odpowiedzi:

5 dla odpowiedzi № 1

Kompozycja?

Class merged(){

sample1 s1 = new sample1();
sample1 s2 = new sample2();

void doSomething1()
{
s1.dosomething();
}

void doSomething2()
{
s2.dosomething();
}

}

2 dla odpowiedzi nr 2

Możesz przejść na jeden z tych sposobów (lub ich kombinację), jak pokazano poniżej (Uwaga: Konwencja języka Java zakłada, że ​​pierwsza litera nazwy klas jest wielka):

public interface Sample1() {
// abstract methods
}

public class Sample2() {
// whatever
}

public class Merged() extends Sample2 implements Sample1 {
// whatever
}

LUB

public class Sample1() {
// abstract methods
}

public class Sample2() {
// whatever
}

public class Merged() {
Sample1 ob = new Sample1();
Sample2 ob2 = new Sample2();
}

LUB

public interface Sample1() {
// abstract methods
}

public abstract Sample2() {
// abstract and other methods
}

public class Merged() extends Sample2 implements Sample1 {
// whatever
}

LUB

public interface Sample1() {
// abstract methods
}

public interface Sample2() {
// abstract methods
}

public class Merged() implements Sample1, Sample1 {
// whatever
}

1 dla odpowiedzi nr 3

Powinieneś to zrobić z interfejsami.Współczesne języki programowania zorientowanego obiektowo nie obsługują dziedziczenia wielokrotnego (wierz mi, dobrze, że tego nie robią), więc musisz to naprawić za pomocą interfejsów.

Oto przykład w Javie:

public interface GasolineUser {
public double getGasolineGallonsLeft();
}

public interface MusicPlayer {
public void playMusic();
}

public class Car implements GasolineUser, MusicPlayer {
public double getGasolineGallonsLeft(){
// return gallons left
}

public void playMusic(){
// play music
}
}

Zauważ, że Car w tym przypadku jest zarówno plik GasolineUser I a MusicPlayer, więc można go przekazać do dowolnej metody, która wymagajedna lub jakakolwiek metoda, która wymaga drugiej. Podobne dziedziczenie istnieje w C #. Aby uzyskać więcej informacji na temat przydatności interfejsów, poszukaj w Google na temat interfejsów OOP.