- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java《抽象类》讲解
内部类的特性 实例内部类不能声明任何static成员;静态内部类中可以声明static成员。 class A{ class B{ static int var; //非法 } } class C{ static class D{ static int v; //合法 static class E{} //合法 } } C.D.v=1; C.D.E e=new C.D.E(); is-a 根据继承的特性一个派生类对象可以看成是一个基类对象,也就是说一个派生类对象“是一个”基类对象,是一种约定俗成的说法。 has-a 表示有一个,这种关系就是组成关系,指的是一个类将另一个类的对象作为自己的数据成员。 * 一流的小说家和三流的小说家都会写小说,两者的区别之一是,前者的语言流畅,善于运用贴切的修饰词汇来渲染 主题,而后者的语言苍白无力,不能鲜明准确的反映主题。从下面的修饰词会产生不同的效果: //没有修饰词的描述 小东 10:00钟起床,赶到学校,在教室门口被老师批评了一顿,小东走进教室。 //采用修饰词来反映小东知错就改 小东10:00钟起床,急急忙忙的赶到学校,在教室门口被老师严厉的批评了一顿,小东惭愧的走进教室 //采用修饰词来反映小东玩世不恭 小东10:00钟起床,不紧不慢的赶到学校,在教室门口被老师严厉的批评了一顿,小东满不在乎的走进教室 * * 抽象类 主讲:梅志阶 本次课内容 了解抽象的概念 理解抽象类概念及创建 抽象类和接口的区别 访问修饰符 (public protected default private) 内部类 抽象 从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征。例如苹果、香蕉、生梨、葡萄、桃子等,它们共同的特性就是水果。得出水果概念的过程,就是抽象的过程。 要抽象,就必须进行比较,没有比较就无法找到共同部分。 抽象 处理事物复杂性的方法 只关注事物的重要 细节,而忽略事物 的次要细节。 为什么要抽象 为什么要抽象 递交报告 速递公司 在回执确认上签名 返回回执确认 史密斯大夫 将报告送往目的地 包装并密封报告 abstract修饰抽象类和抽象方法 class A{ void fun1(); void fun2(){ System.out.println(this is a+concrete method); } } abstract abstract 抽象类与抽象方法 含有抽象方法的类肯定是抽象类,但抽象类不一定必须包含抽象方法 例:fun2()就有实现 和 不能被声明为抽象方法 抽象方法只需声明,而不需实现 static 方法 构造函数 求面积问题 难以在父类中写出每种图形的面积方法 不能在子类中单独实现,否则父类不能使用 解决: 父类中声明、子类中实现 求面积 求面积 求面积 图形类 * public abstract class Shape { public String shapeName;? /** 默认构造方法 */ public Shape() { }? /** 参数化构造方法 */ public Shape(String shapeName) { this.shapeName = shapeName; }? /** 抽象方法:求面积 */ public abstract double getArea(); ? /** 已实现方法:介绍 */ public void showShape() { System.out.println(正在操作的图形为: + shapeName); } } * public class Circle extends Shape { public double radius;// 半径 public static final double PI = 3.14;? /** 默认构造方法 */ public Circle() { }? /** 参数化构造方法 */ public Circle(String shapeName, double radius) { super(shapeName); this.radius = radius; }? /** 圆环面积 */ public double getArea() { System.out.println(圆环面积为: + PI * radius * radius); return PI * radius * radius; } } public
文档评论(0)