`
qwxi_1
  • 浏览: 8531 次
  • 性别: Icon_minigender_1
  • 来自: 邯郸
最近访客 更多访客>>
文章分类
社区版块
存档分类

SCJP(310-055)学习之旅———抽象类也可以实例化

阅读更多

抽象类是否可以实例化?

---------------写到哪里就说到哪里,哈哈哈!

 

1.              抽象类可以实例化。

///////////////////////

 

 

大家看到了吧,抽象类竟然可以实例化,并且还调用了自己的抽象方法。

 

我做这个实验的想法来自API文档,大家知道WindowAdapter就是一个抽象类,但是他的所有成员方法都是空实现,既然已经实现了,为什么还要表示为abstract类呢?从适配器模式的角度看的话,API设计者认为适配器类中的成员方法,如下截图

 

 

根本没有定制业务逻辑的必要!原因很简单,每种事件发生的时候,程序员所需要的业务逻辑是不一样的,API的编写者何必再画蛇添足呢,增加了代码量,最重要的是自己实现的业务逻辑,程序员却不用,多累呀!!!

其实说某一个类一旦有abstract标识符,就会被编译器认为是有没有业务逻辑(方法体)的抽象方法。这仅仅是编译器一厢情愿的观点。但话又说回来了,你不让编译器舒服了,哈哈,编译器也不会让你好过的。

 

还有一点就是一个类一旦有abstract标识符的话,在实例化时候就必须有大括号,大括号里面是抽象方法的业务逻辑的填充处。如果没有抽象方法,或者是空实现,可以不用写,但是一旦有抽象方法就必须实现,如果不实现,编译器就会报错。如下

 

 

 /////////////////

 

 

 

这个大括号与类的标识符abstract是生死相依的。

                                                                                      

判断一个类是抽象类的标准是:此类有一些方法(一个或多个)这些方法没有方法体。此时这个方法必须显示的标识为abstract,于此同时这个类也要显示的标识为abstract

 

分享到:
评论
1 楼 whitenegro 2008-05-19  
我晕   看着是实例化了抽象类,实际上是实例化了一个抽象类的匿名实现类

相关推荐

    SCJP 310-055 题库2 类、接口以及枚举

    ### SCJP 310-055 题库2:类、接口以及枚举 #### 题目解析与知识点总结 **题目1:接口中的成员变量** - **描述:** 给定一个接口 `Status`,其中包含一个成员变量 `MY_VALUE`,要求在第12行插入合适的修饰符。 ...

    JAVA资格认证:SCJP310-055中文

    ### JAVA资格认证:SCJP310-055中文知识点详析 #### 第一部分:声明、初始化、和作用域 - **定义类**: 在Java中定义类的基本语法包括使用`class`关键字,随后是类名,接着是类体。类可以包含属性(字段)和方法。 ...

    SCJP 310-065考试笔记.doc

    但若没有无参构造函数,就不能直接用带参数的构造函数创建抽象类的实例,因为抽象类本身不能被实例化。 8. **条件表达式**: - 在Java中,条件语句如`if`或`while`的条件部分必须是布尔值。案例10中的错误在于尝试...

    scjp 310-065认证大纲

    - **`abstract`**:不能实例化此类,但可以声明此类的引用。 - **`strictfp`**:确保浮点计算的精确性跨平台一致。 - **接口实现**: - **接口**:定义了一组行为规范,不包含具体的实现细节。 - **抽象方法**:...

    SCJP 310-035题库(294题)

    ### SCJP 310-035题库解析 #### 题目1解析: 在本题中,我们定义了一个名为`Test`的类,其中包含了一个内部类`Foo`,并设置了一个整型变量`i`。通过将`Foo`对象赋值给`Object`类型的引用`o`,然后将`o`转换回`Foo`...

    scjp (310-035)学习指南

    通过SCJP (310-035)学习指南,你可以系统地学习这些内容,并为考试做好充分准备。指南可能包含详细的解释、实例代码、练习题和模拟测试,帮助你在实际开发中运用这些知识,提高编程技能。如果你是Java初学者或者打算...

    java scjp考点

    - 抽象类无法直接实例化,但可以有构造方法。 - 抽象类中至少有一个未实现的方法时,整个类必须被声明为抽象。 - 抽象类可以包含已实现和未实现的方法。 - 实现抽象类的第一个具体子类必须实现所有抽象方法。 5...

    SCJP学习指南完整版pdf共18章

    - **对象 (Object)**: 运行时,通过`new`关键字实例化一个类得到的对象,每个对象都有其独立的状态并可以访问该类定义的所有行为。 - **状态(实例变量)(State (instance variables))**: 对象的实例变量集合构成了...

    SCJP-065 资料

    SCJP(Sun Certified Programmer...以上是SCJP 6认证考试的主要知识点,通过深入学习和实践这些内容,可以为通过考试打下坚实的基础。如果压缩包内包含相关的实例代码和习题,将有助于巩固理论知识并提升实际编程能力。

    SCJP 考试题 题库

    .pdf”可能包含的是针对310-055版本SCJP考试的模拟试题,这对于实际考试的准备非常有价值。而“310-055-Q&A-Troytec.pdf”可能是Troytec出版的题库,Troytec是知名的IT认证考试培训机构,其提供的题库通常质量较高。...

    SCJP认证学习资料

    4. **接口与抽象类**:接口和抽象类是实现多态的重要工具。理解它们的区别和使用场景,以及如何通过它们来设计可扩展的代码,是SCJP学习中的重要内容。 5. **包与命名空间**:包是用来组织和管理Java类的一种方式,...

    SCJP6 考试大纲 Objectives

    对于已经拥有SCJP1.5(即CX-310-055)认证的开发者,可以考虑参加Upgrade Exam:Sun Certified Programmer for the Java Platform, Standard Edition 6 (CX-310-066),以更新到最新的版本知识,而无需再次参加完整的...

    SCJP学习指南javase6

    6. **接口和抽象类**:讲解接口的定义、实现,以及抽象类的作用,它们在多态性中扮演的角色。 7. **集合框架**:Java集合框架包括List、Set、Map接口及其具体实现,如ArrayList、LinkedList、HashSet、HashMap等,...

    SCJP详细大纲 多线程

    根据提供的文件信息,我们可以将SCJP(Sun Certified Java Programmer)的大纲内容进行详细的解析与扩展。这份大纲覆盖了Java编程的基础到高级主题,是准备SCJP认证考试的重要指南。接下来,我们将逐一分析每一部分...

    SCJP考试的学习笔记

    - **抽象类**:是一种不能实例化的类,通常包含抽象方法(没有方法体的方法),用于提供一种模板类,让子类去实现具体的行为。 - **接口**:是一种完全抽象的类,只包含抽象方法和常量。接口用于定义一组行为规范,...

    SCJP考试大纲中文版

    3. **抽象类的扩展**:如何开发代码以扩展抽象类,并使用静态、实例和局部变量。 4. **变量声明与初始化**:了解各种类型的变量(基本类型、数组、对象)的声明、初始化和使用,包括正确命名标识符。 5. **方法声明*...

Global site tag (gtag.js) - Google Analytics