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
在这种情况下,两者都是 a GasolineUser
AND a MusicPlayer
,因此可以将其传递给任何需要一个的方法或任何需要另一个的方法。C# 中存在类似的继承。有关接口有用性的更多信息,请在 OOP Interfaces 上进行 google 搜索。