class merged(){
//i want to be able to use class sample1 and sample2 by just calling this merged class
}
class sample1(){}
class sample2(){}
または、これは理想的ではありませんか?これをより効率的に実装するにはどうすればよいか教えてください。
class merged(){
//i want to be able to use class sample1 and sample2 by just calling this merged class
}
class sample1(){}
class sample2(){}
または、これは理想的ではありませんか?これをより効率的に実装するにはどうすればよいか教えてください。
構成?
Class merged(){
sample1 s1 = new sample1();
sample1 s2 = new sample2();
void doSomething1()
{
s1.dosomething();
}
void doSomething2()
{
s2.dosomething();
}
}
以下に示すように、いずれかの方法 (またはいくつかの方法の組み合わせ) を使用できます (注: Java の規則では、クラス名の最初の文字を大文字にします)。
public interface Sample1() {
// abstract methods
}
public class Sample2() {
// whatever
}
public class Merged() extends Sample2 implements Sample1 {
// whatever
}
また
public class Sample1() {
// abstract methods
}
public class Sample2() {
// whatever
}
public class Merged() {
Sample1 ob = new Sample1();
Sample2 ob2 = new Sample2();
}
また
public interface Sample1() {
// abstract methods
}
public abstract Sample2() {
// abstract and other methods
}
public class Merged() extends Sample2 implements Sample1 {
// whatever
}
また
public interface Sample1() {
// abstract methods
}
public interface Sample2() {
// abstract methods
}
public class Merged() implements Sample1, Sample1 {
// whatever
}
これはインターフェイスで行う必要があります。現代のオブジェクト指向プログラミング言語は多重継承をサポートしていないため (サポートしていないのは良いことだと思います)、インターフェイスを使用してこれを修正する必要があります。
Java での例を次に示します。
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
}
}
Car
この場合、どちらもGasolineUser
AND aMusicPlayer
であるため、一方を必要とする任意のメソッドまたは他方を必要とする任意のメソッドに渡すことができることに注意してください。同様の継承が C# にも存在します。インターフェースの有用性の詳細については、OOP インターフェースで Google 検索を行ってください。