Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 扩展页面对象基类和LoadableComponent<&燃气轮机;在一起_Java - Fatal编程技术网

Java 扩展页面对象基类和LoadableComponent<&燃气轮机;在一起

Java 扩展页面对象基类和LoadableComponent<&燃气轮机;在一起,java,Java,目前,我正在为我的一个项目实现LoadableComponent设计模式 早些时候,我使用了一个“BasePage”,其中“Pages”包下的每个页面都在扩展 现在根据LoadableComponent设计模式,每个页面都需要扩展LoadableComponent,并且应该重写'load()'和'isLoaded()'方法。但是我的问题是如何在每个页面类中同时扩展BasePage和LoadableComponent 如果我使用多级继承,那么如何为每个类定义isLoad()和isLoaded()?

目前,我正在为我的一个项目实现LoadableComponent设计模式

早些时候,我使用了一个“BasePage”,其中“Pages”包下的每个页面都在扩展

现在根据LoadableComponent设计模式,每个页面都需要扩展LoadableComponent,并且应该重写'load()'和'isLoaded()'方法。但是我的问题是如何在每个页面类中同时扩展BasePage和LoadableComponent

如果我使用多级继承,那么如何为每个类定义isLoad()和isLoaded()??因为每个类都需要不同的组件。而且嵌套组件是不可能的

public class BasePage<T extends BasePage<T>> extends LoadableComponent<BasePage>{

    .......

}


public class LoginPage extends BasePage {

     ..........  

}
公共类基页扩展了LoadableComponent{
.......
}
公共类登录页扩展了BasePage{
..........  
}

请给我推荐一个解决方案???

您可以覆盖子类中的所有非私有非静态方法。以下是一个基于您的项目的示例:

public class BasePage<T extends BasePage<T>> extends LoadableComponent<BasePage>{

    public boolean isLoaded() {
       // Do something interesting
    }

    public boolean isLoad() {
       // Do something interesting
    }
}


public class LoginPage extends BasePage {

    @Override
    public boolean isLoaded() {
       // Do something new based on LoginPage
    }  

}
公共类基页扩展了LoadableComponent{
公共布尔值已加载(){
//做些有趣的事
}
公共布尔isLoad(){
//做些有趣的事
}
}
公共类登录页扩展了BasePage{
@凌驾
公共布尔值已加载(){
//基于LoginPage做一些新的事情
}  
}
更多信息可以在这里找到:

好吧,我解决了它:-

public class BasePage<T extends BasePage<T>> extends LoadableComponent<T>{

    @Override
    public boolean isLoaded() {
       // Blank as all implemented algo comes under pages
    }

    @Override
    public boolean isLoad() {
       /// Will be Blank
    }
}


public class LoginPage extends BasePage {

    @Override
    public boolean isLoaded() {
       //Write logic
    }  

    @Override
    public boolean isLoad() {
       /// Write Logic
    }


}
公共类基页扩展了LoadableComponent{
@凌驾
公共布尔值已加载(){
//空白,因为所有实现的algo都位于页面下
}
@凌驾
公共布尔isLoad(){
///将是空白的
}
}
公共类登录页扩展了BasePage{
@凌驾
公共布尔值已加载(){
//写逻辑
}  
@凌驾
公共布尔isLoad(){
///写逻辑
}
}