抽象类可以干什么?抽象类可以让别人必须做一件事情,比如实现一个方法。

那它有什么作用呢? 我开始也不知道啊,后来慢慢的知道了,在开发中,我知道了它是干什么的,怎么用的。比如你要写一个sdk给别人用。但是呢,有些东西你是要别人提供的,这时候你就可以写一个抽象类,让它返回给你你想要的东西。比如:

public abstract class ZAbsActivity extends Activity {

    private static final String KEY_ACTION = "KEY_ACTION";
private static final String KEY_LOGIN_PLATFORM = "KEY_LOGIN_PLATFORM";
private static final int VALUE_ACTION_CREATE_SHORTCUT = 300;
private static final int VALUE_ACTION_THIRDPART_LOGIN = 301;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initAction(); } private void initAction(){
Intent intent = getIntent();
if(intent == null){
finish();
} int action = intent.getIntExtra(KEY_ACTION, 0);
switch (action){
case VALUE_ACTION_CREATE_SHORTCUT:
createShortCut();
break;
case VALUE_ACTION_THIRDPART_LOGIN:
String platform = intent.getStringExtra(KEY_LOGIN_PLATFORM);
handleThirdPartLogin(platform);
break;
}
finish();
} private void handleThirdPartLogin(String platform){
String token = getThirdPartToken(platform); Intent data = new Intent();
data.putExtra("TOKEN", token);
setResult(RESULT_OK, data);
} protected abstract String getThirdPartToken(String platform); protected abstract int getShortCutResId(); protected abstract String getIntentClassName(); private void createShortCut(){
PlugApi.createShortcut(this,"meizuxiaohsuo", getIntentClassName(),getShortCutResId());
}
}

这是一个抽象类,里面的createShortCut方法是用来创建Android的图标的,但是,我是一个插件,创建图标必须是宿主程序来做,但是人家肯定不愿意写任何的代码。这里你都写好,你需要的参数,让它去实现。这样就可以把sdk做的很完美。别人只需要实现几个方法,不需要写代码。当然也可以用接口实现啦。这只是抽象类的冰山一角。好了,下班了。充实的一天!耶耶耶~!

抽象类的作用之一:sdk 传递你需要的参数的更多相关文章

  1. 《Java中的抽象类及抽象类的作用》

    //抽象类示例: abstract class Shape1 { { System.out.println("执行Shape的初始化块..."); } private String ...

  2. Java第十二次作业:继承与抽象类解决工人与学生的问题,抽象类实例。抽象类作用——为多态创造了可能。抽象类的作用总结

    继承与抽象类解决工人与学生的问题 抽象类实例 package com.swift; public abstract class Person { private String name; privat ...

  3. php课程 12-40 抽象类的作用是什么

    php课程 12-40 抽象类的作用是什么 一.总结 一句话总结:定标准的 1.继承的关键词有哪两个? extendsparent 2.抽象类的实际意义是什么? 制造符合规范的产品你必须实现了抽象类里 ...

  4. shell函数传递带空格的参数

    shell中的参数以空格为分割符,经常会碰到需要传递带空格的参数,例如传递带空格的文件名. 方法很简单:给参数加双引号. 但是实际效果要看你的函数内容,一种可能的情况是: 其实你真的传递进去了带空格的 ...

  5. Qt--信号槽传递自定义结构体参数

    自定义结构体参数的信号槽连接 (1) 对于自定义的结构体参数,信号槽无法识别参数,导致信号槽连接不起作用.所以需要注册结构体参数.在结构体中声明结束的地方加上结构体注册. struct DealDet ...

  6. Shell脚本传递带有空格的参数[摘录自网络]

    参数处理 说明 $# 传递到脚本的参数个数 $* 以一个单字符串显示所有向脚本传递的参数 $$ 脚本运行的当前进程ID号 $! 后台运行的最后一个进程的ID号 $@ 与$#相同,但是使用时加引号,并在 ...

  7. python函数参数的传递、带星号参数的传递

    python中函数参数的传递是通过赋值来传递的.函数参数的使用又有俩个方面值得注意:1.函数参数是如何定义的 2.在调用函数的过程中参数是如何被解析 先看第一个问题,在python中函数参数的定义主要 ...

  8. Shell脚本传递带有空格的参数

    在另一博文<Shell脚本实现DB2数据库表导出到文件>中实现了通过脚本实现将DB2数据库导出到文件,需要传入七个参数,最后一个是一个带有空格字符串,所以传入的时候有点问题,会自动识别空格 ...

  9. java中的抽象类的作用

    抽象函数的作用有很多,我就举一个例子,(mars老师的例子): 打印机: 父类---Printer 子类---HBPrinter 子类----CanonPrinter 测试类----Test //定义 ...

随机推荐

  1. selenium学习备忘

    在做web项目的自动化端到端测试时主要使用的是Selenium WebDriver来驱动浏览器.Selenium WebDriver的优点是支持的语言多,支持的浏览器多.主流的浏览器Chrome.Fi ...

  2. Java项目性能瓶颈分析及定位(八)——Java线程堆栈分析(五)

    对于CPU而言,常见的瓶颈主要有两种:服务器的压力很小,但是CPU的利用率却很高,这样的性能瓶颈相对比较容易定位(好比我只是说了你一句,你就哭了,你的弱点立马就暴露出来了):给服务器施加的压力很大,但 ...

  3. K星异客

    http://baike.baidu.com/view/222058.htm 这部改编自基恩·布汝尔1995年出版的同名小说的电影在当年的十月档票房榜上称冠.本来这部电影的外星人主人公属意于威尔.史密 ...

  4. linux基础命令-mkdir/tree/rmdir

    命令行的展开 ~: 展开为用户的主目录 ~USERNAME: 展开为指定用户的主目录 {}:可承载一个以逗号分隔的列表,并将其展开为多个路径 [root@host01 tmp]# mkdir -vp ...

  5. Node.js-npm安装包目录修改

    请借我一个哭的表情....=.= 等我发现的时候为时已晚~所有安装的包都去了C盘,而强迫症的我想卸载了之前所有的包再重新下一遍!!! 切记!安装好npm后,记得修改: 原始路径: 修改后的路径(如果没 ...

  6. 概念:RPG游戏中两个兵种互相攻击的逻辑

    直接上题目: 解析题目: 根据题目的解析,进行代码的实现: 输出结果: 心得: (1) 当我们面对‘公式结果不是我们想要的’时,应该在脑海里将一个完整的攻击流程进行想象,就会对流程有个更清晰的思路 ( ...

  7. struts2表单提交Date数据无法接收

    问题:在Struts2环境下,提交含有Date类型数据表单,但是在action中没有接收到:String就可以直接接收到: --网络搜索后,说Struts2可以自己转,但是目前没发现有: 然后在狂搜, ...

  8. Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.错误

    错误如图示: 1.在php的目录下建立个文件夹tmp,这个有权限的问题,如果是ntfs的分区,就一定要添加evryone的控制权限,否则是没用的.2.在php.ini找到session.save_pa ...

  9. IOS GCD (事例下载图片)

    @interface HMViewController () @property (weak, nonatomic) IBOutlet UIImageView *imageView; @end @im ...

  10. java 使用hashmap一个键对应多值的方法

    背景:在你使用map对象时,你可能会有一个key,对应多个值的需求 实现: import java.util.ArrayList; import java.util.HashMap; import j ...