- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
final和abstract修饰符
1 final修饰符
使用final修饰符可以修饰类的成员变量、类的成员方法和类。前面我们知道,用final修饰成员变量或局部变量,则该变量为常值变量(常量),一旦赋值便不能改变,一般与static组合定义类常量。
也可以用final修饰成员方法。如果一个方法使用final修饰,则该方法不能在子类中被覆盖。例如下面的代码会发生编译错误:
class A{
final void method(){}
}
class B extends A{
void method(){}
}
final关键字还可以修饰一个类。如果一个类使用final修饰,则该类就为最终类(final class),最终类是不能被继承的类。
定义final类的格式为:
final class ClassName{
//…
}
下面代码会发生编译错误:
final class A{
//…
}
class B extends A{
//…
}
有时为了安全的考虑,防止类被继承,可以在类的定义时使用final修饰符。在Java的类库中就有一些类声明为final类,如Math类和String类都是final类,它们都不能被继承。 声明为final的类隐含声明了其中的方法都为final方法。
2 abstract修饰符
在继承的层次结构中,随着一个个新子类的出现,类变得越来越专门、越具体。如果从一个子类上溯到父类,类就变得更一般、更通用。类的设计应该保证父类和子类能够共享特征。有时将一个类的设计得非常抽象,以至于它没有具体的实例。
前面我们定义了圆的类,假设我们还要设计一个矩形(Rectangle)类和三角形(Triangle)类,这些类也需要定义求周长和面积的方法。
它们具有共同的特征和行为。这时我们就可以设计一个更一般的类,比如几何形状(GeometricShape)类,来模拟圆、矩形、三角形等。在该类中定义那些求周长和面积的方法,然后在定义具体形状的类时继承该类并覆盖其中的方法。
由于几何形状不能有一个具体的对象,因此方法的实现需要依赖于具体的形状,这些方法就不能实现,因此要定义为抽象的方法(abstract method)。抽象方法是只有方法的声明,没有方法的实现,定义抽象方法需要在方法前加上abstract修饰符。
包含抽象方法的类应该定义为抽象类(abstract class),定义抽象类需要的类前加上abstract修饰符。
下面定义的GeometricShape类即为抽象类,其中定义了两个抽象方法。
程序GeometricShape.java
public abstract class GeometricShape{
public int color;
public String name;
public GeometricShape(){
color = 0;
name = shape;
}
public GeometricShape(int color,String name){
this.color = color;
this.name = name;
}
public void setColor(int color){
this.color = color;
}
public int getColor(){
return color;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public abstract double circum();
public abstract double area();
}
_____________________________________________________________________________▃
抽象类不能被实例化,即不能生成抽象类的对象,如下列语句将会产生编译错误:
GeometricShape gs=new GeometricShape();
可以创建抽象类的子类,抽象类的子类还可以是抽象类。只有非抽象的子类才能使用new创建该类的对象。在抽象类中可以定义构造方法,这些构造方法可以在子类的构造方法中调用。在抽象类中可以定义非抽象的方法。
抽象方法的作用是为所有子类提供一个统一的接口。对抽象方法只需声明,不需实现,即在声明后用一个分号(;)结束,而不需要用大括号,例如上面类定义的最后两行就声明了两个抽象方法。
抽象类中可以没有抽象方法,但仍然需要被
您可能关注的文档
- 0000基于R树面向对象航海资料数据模型.pdf
- 安装、使用与卸载应用程序(更改).ppt
- 0-1岁宝宝精细动作.doc
- 安装MATLAB R2013b和破解方法(图文版).pdf
- 安装教程-EndNote X7 [自动保存].pptx
- 安装与管理IIS个人WEB服务器.ppt
- 0阻抗匹配及阻抗变换.ppt
- 安装与配置DHCP服务器.ppt
- 01-02_Java程序组成.pdf
- 安装运行PROE 出错误解决方法集合.docx
- 用户体验设计测试试题:涵盖目的、方法、流程等知识要点 .docx
- 2024—2025学年广东省江门市普通高中高二上学期期末调研测试语文试卷.doc
- 超声波探伤知识问答:放大器功能及声音传播速度等判断.docx
- 古典管理学家相关理论知识测试及学派观点解析.docx
- 春秋战国历史知识测试:诸侯国变迁、人口变化及思想交流.docx
- 2025年湖北省鄂东新领先协作体高考英语二模试卷.docx
- 第三代复合光美白舱知识测试:功效、自由基及照射效果等.docx
- 河北景县中学2023-2024学年高考仿真模拟历史试卷含解析.doc
- 2024—2025学年广东省深圳市南山区高三上学期期末教学质量监测语文试卷.doc
- 手术室护理知识问答及护理违规相关题目解析 .docx
最近下载
- 无人驾驶车辆轨迹规划技术研究与应用 .pdf VIP
- 2025广东清远市英德市市区学校选调教师117人笔试备考题库及答案解析.docx
- 2025广东清远市英德市市区学校选调教师117人笔试备考试题及答案解析.docx
- 南芯产品规格书SC8886.pdf
- 2024-2025学年初中道德与法治七年级全一册中华民族大团结(同步训练)试题合集.docx VIP
- 2024-2025学年初中道德与法治七年级全一册中华民族大团结(单元测试)试题合集.docx VIP
- 全国建筑设计劳动(工日)定额(2015年度版).pdf
- 2024-2025学年初中道德与法治初中中华民族大团结教学设计合集.docx
- 第五节 中国的河流和湖泊.ppt
- 蔡康永论说话之道(完整版).doc
文档评论(0)