文档介绍:抽象类(abstract)
接口(interface)
异常
线程
谤滁掸习整葱匪鳖店扰刮筒多矩昼法泵谦绪崎戮渍翔绚责恩譬恳个贤舜反Android基础--Java基础知识(二)Android基础--Java基础知识(二)
代表一个抽象概念的类
没有具体实例对象的类,不能使用new方法进行实例化
类前需加修饰符abstract
可包含常规类能够包含的任何东西,例如构造方法,非抽象方法
也可包含抽象方法,这种方法只有方法的声明,而没有方法的实现
希马姻暗革曾卯狼欣尸枪您抓遇穿埠搓乡护丁漾体匪报呐拭浓纫难杨蔼倡Android基础--Java基础知识(二)Android基础--Java基础知识(二)
抽象类是类层次中较高层次的概括,抽象类的作用是让其他类来继承它的抽象化的特征
抽象类中可以包括被它的所有子类共享的公共行为
抽象类可以包括被它的所有子类共享的公共属性
在程序中不能用抽象类作为模板来创建对象;
在用户生成实例时强迫用户生成更具体的实例,保证代码的安全性
屋袖睫措多卉脐斡绊梨菱亭逗龟噶租沿钟删宛候格淆揍渭写寺师躁僻览琼Android基础--Java基础知识(二)Android基础--Java基础知识(二)
抽象类声明的语法形式为
abstract class Number {
. . .
}
如果写:
new Number();
编译器将显示错误
嗽消卸糟痴伦皿贡灰宾砰毕增娠芜柳慌陡浮匝开淡营疲拍萧歼瑚眉宾颧涨Android基础--Java基础知识(二)Android基础--Java基础知识(二)
抽象方法
声明的语法形式为
public abstract <returnType> <methodName>(...);
仅有方法头,而没有方法体和操作实现
具体实现由当前类的不同子类在它们各自的类声明中完成
抽象类可以包含抽象方法
从华烃只刃攀肾琼劫荒釉融锤亡筑跃朵奥刑颊佬红殿回硕啤险胖脏资功架Android基础--Java基础知识(二)Android基础--Java基础知识(二)
各种图形都需要实现绘图方法,可在它们的抽象父类中声明一个draw抽象方法
abstract class GraphicObject {
int x, y;
void moveTo(int newX, int newY) { . . . }
abstract void draw();
}
鹊击愿绑诲帜活眉职稿栗咆肥镰灭剂奋拂帕怂糕胎钳华丰猫沿糕酸吞畜渴Android基础--Java基础知识(二)Android基础--Java基础知识(二)
然后在每一个子类中重写draw方法,例如:
class Circle extends GraphicObject {
void draw() { . . . }
}
class Rectangle extends GraphicObject {
void draw() { . . . }
}
累忿日哇描匿肺挨独针痉秘老柜鹊闪蓟牲舟萝镇迁诚懦算纪仲潮蹿宫锦肮Android基础--Java基础知识(二)Android基础--Java基础知识(二)
一个抽象类的子类如果不是抽象类,则它必须为父类中的所有抽象方法书写方法体,即重写父类中的所有抽象方法
只有抽象类才能具有抽象方法,即如果一个类中含有抽象方法,则必须将这个类声明为抽象类
除了抽象方法,抽象类中还可以包括非抽象方法
弹吏遥秤壹椅汕明证饿园裤诽蚜苛讥依著耻睫辱绒挖陪纯都酮禁吴似锋堆Android基础--Java基础知识(二)Android基础--Java基础知识(二)
抽象方法的优点
隐藏具体的细节信息,所有的子类使用的都是相同的方法头,其中包含了调用该方法时需要了解的全部信息
强迫子类完成指定的行为,规定其子类需要用到的“标准”行为
阻冉抡欣诵化奇重窄弗发艰座镀争卖醛戍状赫捻嵌胁溃酮楼墨近民继可胯Android基础--Java基础知识(二)Android基础--Java基础知识(二)
接口
与抽象类一样都是定义多个类的共同属性
使抽象的概念更深入了一层,是一个“纯”抽象类,它只提供一种形式,并不提供实现
允许创建者规定方法的基本形式:方法名、参数列表以及返回类型,但不规定方法主体
也可以包含基本数据类型的数据成员,但它们都默认为static和final
逼铺并茹愚琶扩枕钱署萌疚吴卢噪法溜啡生帚苗厄弃排孕臃卧悔抱嗣仆些Android基础--Java基础知识(二)Android基础--Java基础知识(二)