`
James_Dong
  • 浏览: 4552 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

abstract

阅读更多
[转]抽象方法为什么不能是static或native或synchroniz(2009-09-18 16:01:00)
转载标签: it 分类: 开发 
这个问题要从实际的逻辑角度去看的,首先要了解abstract,static,synchronized,native这些关键字干什么用的。
abstract是抽象的,指的是方法只有声明而没有实现,他的实现要放入声明该类的子类中实现。


static是静态的,是一种属于类而不属于对象的方法或者属性,而我们知道,类其实也是一个对象,他是在class文件加载到虚拟机以后就会产生的对象,通常来说它是单例的,就是整个虚拟机中只有一个这样的类对象(当然,如果用新的类加载器也会生成新的类的对象)。

ps:这句话给我印象深刻,因为以前不知道class文件在虚拟机的情况。


synchronized 是同步,是一种相对线程的锁。
native 本地方法,这种方法和抽象方法及其类似,它也只有方法声明,没有方法实现,但是它与抽象方法不同的是,它把具体实现移交给了本地系统的函数库,而没有通过虚拟机,可以说是java与其它语言通讯的一种机制。
那么我们就来谈谈这些关键字为什么不能和abstract混用。
首先abstract与static,其实一看他们的作用和属性就很容易辨别,abstract是没有实现的,而static一定要有实现,因为abstract的类不能生产对象,但是static是属于类,而类已经是一个存在的对象,这两个关键字在这上面有一个关键的矛盾点。
synchronized 是同步,然而同步是需要有具体操作才能同步的,如果像abstract只有方法声明,那同步一些什么东西就会成为一个问题了,当然抽象方法在被子类继承以后,可以添加同步。
native,这个东西本身就和abstract冲突,他们都是方法的声明,只是一个吧方法实现移交给子类,另一个是移交给本地操作系统。如果同时出现,就相当于即把实现移交给子类,又把实现移交给本地操作系统,那到底谁来实现具体方法呢?
[/color][color=blue][/size][size=x-large][size=x-small][/size][/color]
分享到:
评论

相关推荐

    Java常用设计模式(SingleTon、FactoryMethod、AbstractFactory)

    这里我们将深入探讨三种常见的Java设计模式:单例(Singleton)、工厂方法(Factory Method)和抽象工厂(Abstract Factory)。 **单例模式(Singleton)** 单例模式确保一个类只有一个实例,并提供一个全局访问点...

    Joseph Gallian-Contemporary Abstract Algebra-Cengage Learning (2016)

    标题所指示的知识点是关于Joseph Gallian所著的《Contemporary Abstract Algebra》这本书,这本书是2016年由Cengage Learning出版的,属于抽象代数领域的教材。 在描述中提到,这是一本关于抽象代数的书籍资料,...

    override abstract virtual interface比较

    C# 中 override、abstract、virtual、interface 的比较 在 C# 编程语言中,override、abstract、virtual、interface 是四个关键字,它们之间存在着紧密的联系,我们经常会遇到 override、abstract、virtual 这三个...

    对设计模式—Abstract Factory模式的认识

    ### 设计模式——Abstract Factory模式的认识 在软件工程领域,设计模式是一种被广泛接受的解决方案,用于解决在软件设计过程中常见的问题。其中,Abstract Factory模式是23种GoF(Gang of Four)设计模式之一,它...

    设计模式之Abstract Factory模式和代码实现

    在设计模式中,Abstract Factory模式是一种用来解决在不指定具体实现的情况下创建一系列相关或相互依赖对象的模式。在本文的上下文中,我们看到它被应用于一个奇幻RPG游戏的角色种族设计,每个种族(如人类、精灵)...

    深入理解abstract class和interface

    abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性...

    Remobjects DataAbstract VCL v7.0.65.1067 Retail

    Data Abstract is the leading framework for secure, safe, and scalable data access across all the different platforms you might be building client applications for. Whether you are creating business ...

    基于Data Abstract框架应用软件开发

    Data Abstract是一款强大的软件开发框架,尤其适用于创建分布式应用程序。它为开发者提供了一种高效、安全且灵活的方式来在客户端和服务器之间传输数据。本教程将深入探讨如何利用Data Abstract框架进行应用软件开发...

    Data Abstract Sample for .NET-CSharp

    在这个“Data Abstract Sample for .NET-CSharp”中,我们将深入探讨如何在C#环境下利用数据抽象技术来构建高效的、可扩展的应用程序。 首先,让我们了解一下什么是RemObjects。RemObjects是为多种编程语言提供跨...

    【最新版】Abstract-92.0.0.dmg【亲测可用】最好的设计协作

    设计经理通过注释设计的特定部分来提供反馈,并且一些其他队友在Abstract中进行评论。 抽象集合,显示了一组精选的设计,可以与利益相关者共享。 通知列表显示了设计经理正在批准项目,并突出显示Abstract的审阅请求...

    Data Abstract for Delphi支持delphi2011,delphi XE

    Data Abstract 支持delphi2011(delphi XE) 由于文件较大分割成3份 需要Remobjects SDK的支持 Remobjects SDK 2011下载地址 http://download.csdn.net/source/3018354

    C# 抽象工厂 AbstractFactory.rar

    在C#中,设计模式是一种解决常见编程问题的标准模板,抽象工厂(Abstract Factory)模式就是其中之一。这个压缩包“C# 抽象工厂 AbstractFactory.rar”可能包含了一个关于如何在C#中实现抽象工厂模式的实例或教程。 ...

    RemObjects Data Abstract for Delphi - 9.0.97.1245

    RemObjects Data Abstract for Delphi - 9.0.97.1245 非常好的delphi 三层 三方控件

    RemObjects Data Abstract for .NET 7.0.65.1067

    RemObjects Data Abstract for .NET 7.0.65.1067 是一个强大的中间件框架,专门设计用于在各种应用程序之间实现数据抽象和远程数据访问。这个版本的更新着重于提高性能、稳定性和兼容性,使得开发人员能够更高效地...

    1st course in Abstract Algebra 7E - Fraleigh(solutions manual)

    根据描述,“这是1st course in Abstract Algebra 7E - Fraleigh这本书的配套答案,希望大家在学习中有所帮助。”这段话明确指出了解答手册的目的——作为学生学习过程中的辅助工具。它旨在帮助读者理解抽象代数的...

    Remobjects DataAbstract VCL v7.0.65.1067 Retail.7z

    Remobjects DataAbstract VCL v7.0.65.1067 Retail 是一款强大的中间件框架,专门设计用于在 Delphi 开发环境中构建数据驱动的应用程序。它提供了丰富的功能,帮助开发者创建灵活、可扩展且跨平台的数据访问层。这款...

    创建型模式之抽象工厂模式(Abstract Factory Pattern)

    1. 抽象工厂(Abstract Factory):这是模式的核心,它是一个接口或抽象类,定义了一系列创建对象的方法,但并不直接实例化具体的对象。这些方法用于创建一系列相关或相互依赖的对象。 2. 具体工厂(Concrete ...

    AbstractFactory案例代码

    抽象工厂(Abstract Factory)模式是其中一种创建型设计模式,它提供了一个接口,用于创建相关或依赖对象的家族,而无需指定它们的具体类。这个模式尤其适用于当系统需要在运行时根据不同的条件或配置来创建一系列...

    RemObjects Data Abstract for .NET 7.0.65.1067.rar

    RemObjects Data Abstract for .NET 7.0.65.1067 是一个用于.NET框架的数据库访问中间件,由RemObjects Software公司开发。它为开发者提供了在各种平台和语言间进行数据库交互的能力,包括Delphi。这个版本号7.0.65....

Global site tag (gtag.js) - Google Analytics