【问题标题】:Public class multiple extends and implements [duplicate]公共类多重扩展和实现[重复]
【发布时间】:2014-05-05 20:18:02
【问题描述】:

所以...我现在使用这个公共类,它可以正常工作 (MainActivity.java) 用于我的应用程序中的选项卡。但我想对选项卡做点什么,需要使用按钮和 textViews 和其他东西。 但我不能,因为我需要使用两个扩展和两个工具才能让它们都工作。

public class MainActivity extends ActionBarActivity implements TabListener 

它的外观/工作方式,外观和工作方式

public class MainActivity extends ActionBarActivity, Activity implements TabListener, OnClickListener

关于如何解决这个问题的任何修复或知识? (我用的是 Android Eclipse)

【问题讨论】:

  • 你不能直接扩展多个类。如果需要,您可以使用A extends BB extends C。但是,实现多个接口应该不会造成任何问题。
  • 你可以做 A 扩展 B 和 B 扩展 C 你能用我的例子做到这一点吗?我真的不明白你的意思是什么?它也适用于“工具”吗?
  • public class MATemp extends Actionbar {...},然后是public class MainActivity extends MATemp implements TabListener, OnClickListener {...}。如果您想确保 MATemp 不会被实例化,请使用 public abstract class MATemp ... 将其抽象化。这是基本的 Java,因此您可能应该先从书籍或教程中了解继承,然后再继续学习。
  • 我一直在看教程 ^-^ 大约 5-6 天前开始编码:p 我想我明白了,所以你说的是:public abstract class MATemp extends ActionbarActivity public class MainActivity extends MATemp implements TabListener, OnClickListener
  • 是的,除了你不能一次性完成。你必须分开做,这就是为什么我在我的例子中把它们分开。

标签: java android eclipse multiple-inheritance


【解决方案1】:

参见http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html 部分“抽象类与接口的比较”。

如果要定义多个类可以实现的行为,最常见的方法是使用接口。

【讨论】:

    【解决方案2】:

    您的MainActivityActivity 的一种,但活动不是ActionBar。它可能一个ActionBar 或使用一个,但它不是ActionBar。因此,试图让MainActivity 类扩展ActionBar 是错误的概念。

    我不确定你想做什么(我个人没有尝试直接使用ActionBar 类)。如果你只是想让你的活动对操作栏做一些事情,只需声明一个ActionBar类型的变量:

    ActionBar actionBar;
    

    并在需要时将其分配给getActionBar()getSupportActionBar()。如果你真的想添加功能到Android提供的ActionBar,也许你可以定义一个扩展ActionBar的类,但我不知道你会如何告诉Android使用你的它设置的操作栏的新类。见this tutorial

    编辑:在我发布此答案后,对问题进行了编辑,因此您的课程现在扩展ActionBarActivity

    public class MainActivity extends ActionBarActivity, Activity implements TabListener, OnClickListener
    

    那不一样。但是,ActionBarActivity 已经扩展了Activity,因此您不需要将Activity 放在上面的类定义中。它将自动扩展Activity

    【讨论】:

    • 我认为你误解了这个问题,我确实有你在我的标签中提到的所有这些东西。问题是我还需要扩展 Activity 并实现 Tablistener。对于保存按钮
    • @GoldToazt 看来你在我回答后改变了问题。
    猜你喜欢
    • 2016-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    • 2011-02-16
    • 2016-05-20
    • 2015-06-19
    • 2012-04-06
    相关资源
    最近更新 更多