`
xiaogang_java
  • 浏览: 2023 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

(转载)总结下java中abstract,interface,final,static,加深理解

阅读更多

一,抽象类:abstract

    1,只要有一个或一个以上抽象方法的类,必须用abstract声明为抽象类;

    2,抽象类中可以有具体的实现方法;

    3,抽象类中可以没有抽象方法;

    4,抽象类中的抽象方法必须被它的子类实现,如果子类没有实现,则该子类继续为抽象类

    5,抽象类不能被实例化,但可以由抽象父类指向的子类实例来调用抽象父类中的具体实现方法;通常作为一种默认行为;

    6,要使用抽象类中的方法,必须有一个子类继承于这个抽象类,并实现抽象类中的抽象方法,通过子类的实例去调用;



二,接口:interface

    1,接口中可以有成员变量,且接口中的成员变量必须定义初始化;

    2,接口中的成员方法只能是方法原型,不能有方法主体;

    3,接口的成员变量和成员方法只能public(或缺省不写),效果一样,都是public

    4,实现接口的类必须全部实现接口中的方法(父类的实现也算,一般有通过基类实现接口中个异性不大的方法来做为适配器的做法)



三,关键字:final

   1,可用于修饰:成员变量,非抽象类(不能与abstract同时出现),非抽象的成员方法,以及方法参数

   2,final方法:不能被子类的方法重写,但可以被继承;

   3,final类:表示该类不能被继承,没有子类;final类中的方法也无法被继承.

   4,final变量:表示常量,只能赋值一次,赋值后不能被修改.final变量必须定义初始化;

   5,final不能用于修饰构造方法;

   6,final参数:只能使用该参数,不能修改该参数的值;



四,关键字:static

   1,可以修饰成员变量和成员方法,但不能修饰类以及构造方法;

   2,被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享

   3,static变量和static方法一般是通过类名直接访问,但也可以通过类的实例来访问(不推荐这种访问方式)

   4,static变量和static方法同样适应java访问修饰符.用public修饰的static变量和static方法,在任何地方都可以通过类名直接来访问,但用private修饰的static变量和static方法,只能在声明的本类方法及静态块中访问,但不能用this访问,因为this属于非静态变量.




五,static和final同时使用

   1,static final用来修饰成员变量和成员方法,可简单理解为“全局常量”!

   2,对于变量,表示一旦给值就不可修改,并且通过类名可以访问。

   3,对于方法,表示不可覆盖,并且可以通过类名直接访问。

分享到:
评论

相关推荐

    static、final、abstract和interface使用总结

    在Java编程语言中,`static`、`final`、`abstract`和`interface`是四个非常重要的关键字,它们分别代表不同的特性,用于定义类、变量和方法的行为。下面是对这些关键字的详细解释: 1. **static(静态)** - **...

    Java中的interface接口

    在Java编程语言中,接口(Interface)是一种定义行为规范的关键元素,它允许我们实现多继承。接口是完全抽象的,不包含任何方法的实现,只有方法的声明、常量定义以及默认方法。Java中的接口提供了以下核心知识点: ...

    java abstract class interface之间的区别介绍

    在Java编程语言中,抽象类(abstract class)和接口(interface)都是用于实现抽象化的重要工具,它们可以帮助程序员更好地组织代码,提高代码的可复用性和扩展性。尽管二者在功能上有一些相似之处,但在实际使用中...

    Java中interface接口与abstractclas

    在Java编程语言中,`interface`接口和`abstract class`抽象类是两种重要的面向对象设计概念,它们都用于实现多态性,但有着显著的区别。理解这些差异对于编写可扩展和可维护的代码至关重要。 首先,接口是完全抽象...

    深入理解abstract class和interface

    深入理解`abstract class`和`interface`是Java编程中至关重要的概念,这对于学习Java、Hibernate和Spring等技术的开发者来说尤其重要。`abstract class`和`interface`都是Java中定义抽象类的机制,但它们之间存在...

    Java final static abstract关键字概述

    总结来说,`final`, `static`, 和 `abstract`是Java中用于定义类、方法和变量特性的关键工具,它们在构建面向对象程序中起着至关重要的作用。理解这些关键字的含义和用法对于编写高质量的Java代码至关重要。

    Java abstract class 与 interface对比

    在Java编程语言中,`abstract class`(抽象类)和`interface`是两种重要的机制,它们用于实现多态性和抽象性。虽然它们都可以用来定义抽象方法,但它们之间存在显著的差异,这些差异影响了开发者在设计软件时的选择...

    Java学习笔记---15.面向对象编程10-Java中final关键字,抽象类与接口

    Java中的`final`关键字、抽象类和接口是面向对象编程中的核心概念,它们共同构建了类的层次结构和多态性。以下是对这些概念的详细解释: 1. **final关键字** - `final`关键字用于确保变量的值一旦被赋值后就不能...

    详解java接口(interface)在不同JDK版本中的变化

    Java接口(interface)是Java编程语言中的一种基本结构,用于定义一组相关的方法,隶属关系明确,易于理解和维护。Java接口的变化伴随着JDK版本的更新,下面我们将详细介绍Java接口在不同JDK版本中的变化。 JDK1.7...

    interface&abstract class

    - **接口**:接口中的成员变量默认为public static final。 - **抽象类**:抽象类可以有任意类型的成员变量。 4. **灵活性**: - **接口**:接口强调的是行为规范,用于定义一组操作的集合。 - **抽象类**:...

    Java程序开发中abstract 和 interface的区别详解

    在Java编程语言中,`abstract class`(抽象类)和`interface`都是用来定义抽象类的概念,它们在面向对象设计中扮演着重要的角色。抽象类主要用于表示一系列具有共同特征但又各自具有独特行为的具体类的抽象,而接口...

    Java中抽象类和接口的区别与作用详解

    在Java编程语言中,`abstract class`和`interface`是两种用于定义抽象类的重要机制。这两种机制不仅支持了Java的强大面向对象特性,而且也在实际开发过程中发挥了重要作用。尽管两者在表面上看起来非常相似,但它们...

    Java基础测试题答案.doc

    下面是 Java 基础测试题答案中的知识点总结: Java 类和对象 在 Java 中,每个类只能有一个 public 修饰的类,这是因为 Java 编译器会将 public 类编译成一个单独的文件。因此,在一个 Java 文件中只能有一个 ...

    Java中抽象类和接口的区别

    也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在 interface中一般不定义数据成员),所有的成员方法都是abstract的。  3.abstract ...

    JAVA基础知识精华总结 收藏

    - 接口中所有成员变量都是`static`和`final`的,尽管可以不用这两个关键字修饰,但必须给成员变量赋初始值。 - 接口中的方法都是`public`的,在实现接口的类中,实现的方法也必须用`public`关键字。 - 如果使用`...

    static & main方法 & 代码块 & final & 接口 & 内部类

    Java编程语言中的`static`, `main`方法, 代码块, `final`关键字, 接口和内部类是核心概念,对于理解和编写高效、可维护的Java程序至关重要。以下是对这些概念的详细解释: 1. **`static`关键字**: - `static`...

    java关键字总结文档

    以下是对给定文件中提到的Java关键字进行的详细解释与总结: #### 1. `abstract` - **用途**:`abstract`关键字用于声明抽象类或抽象方法。抽象类不能被实例化,但可以被其他类继承;抽象方法没有具体实现,必须由...

Global site tag (gtag.js) - Google Analytics