首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >界面构造函数和抽象构造函数?

界面构造函数和抽象构造函数?
EN

Stack Overflow用户
提问于 2016-11-23 09:06:01
回答 1查看 94关注 0票数 0

所以让我说我有这个界面:

代码语言:javascript
复制
public interface IBox
{
     public void onEvent(int eventType, View control, Object data);
}

我有一个类访问它:

代码语言:javascript
复制
  public class Rectangle 
    {
    private IBox onEvent;


public Rectangle(Context context, View rowRoot) {
        super(context);
        onEvent = (Rectangle) context;
    }
      @Override

    public void onClick(View v) {

        switch (v.getId()) {
        case R.id.buttonClick:
                // send data : data1 and data2;
                onEvent.onEvent(data1,null, data2);
            break;
    }

我有一个类实现IBox

代码语言:javascript
复制
 public abstract class BaseActivity implements IBox
    {
    @Override
        public void onEvent(int data1, View data, Object data2)
       {
      //do something here
       }
    }

我还有类扩展BaseActivity类:

代码语言:javascript
复制
public class HomeBaseActivity extends BaseActivity
{
   // transit Activity here, or send intent....
}

最后,我有类main扩展HomeBaseActivity

代码语言:javascript
复制
public class HomeActivity extends HomeBaseActivity 
     {

            @Override
            public void onEvent(int data1, View data, Object data2)
           {
          switch (data1) {
           //reciver data1 from class Rectangle
           }
     }

我的问题是: 1、为什么data1可以在HomeActivity类中恢复? 有人能解释,帮我吗? // a英语很差,所以谢谢

EN

回答 1

Stack Overflow用户

发布于 2016-11-25 07:49:36

我理解您想知道为什么在onClick() in Rectangle中,我们可以在HomeActivity中将值传递给onEvent(),并假设您的活动是在扩展Context (每个活动都必须扩展Context)。

让我看看这里。HomeActivity正在扩展正在实现IBoxHomeBaseActivity。基本上,可以将new HomeActivity()转换为IBox的对象。1

此外,正如我上面所假设的,您的活动正在扩展Context。2

1 => HomeActivity的一个实例可以转换为IBoxContext

让我们将HomeActivity的一个对象传递给您的Rectangle (正在转换为Context)并分配给onEvent属性(现在正在转换为IBox)。

现在在您的onClick()中,onEvent.onEvent(data1,null, data2);只是简单地调用了您在HomeActivity中实现的onEvent()方法。这就是为什么可以将data1传递给HomeActivity的原因。

学习有关Java这里中的接口和继承的更多信息。

P/s:如果你在阅读英语方面遇到困难,那就问一问,这次我可以私下用你的母语向你解释。试着提高你的英语水平,至少让每个人都能理解你。因为我们在这里用英语讨论。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40760042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档