final、abstract、interface

final 关键字

·修饰类:   不能继承。

·修饰变量:不能改变其值,经常一起使用static和final来指定一个变量。

·修饰方法:不能被覆盖的方法。

abstract 关键字

·修饰类:    无法实例化的类。

·修饰方法:只含有一个声明,没有方法主体。

【包含抽象方法的类一定是抽象类;抽象类中可包括非抽象方法(具体的方法)。抽象类无法实例化,不能创建对象,只能通过子类继承,然后通过方法覆盖。如果不覆盖抽象方法,子类也必须是抽象类。】

interface 关键字

·我们可以把接口想象成一个“纯”抽象类。接口中的方法都是没有方法体的抽象方法,代表一些基本行为。

·接口也可以包含基本数据类型的数据成员,但它们都默认为static和final(故接口中不能定义变量)。

java允许我们创建“空白的final”,它们属于一些特殊的字段。尽管被声明为final,但却未得到一个初始值。空白final必须在实际使用前得到正确的初始化(在构造器中)。空白的final具备有很到的灵活性。例如:位于类内部的一个final字段现在对每个对象都可以有所不同,同时依然保持其“不变”的本质。

接口这样描述自己:“对于实现我的所有类,看起来都应该像我现在的样子”。因此,才用了一个特定接口的所有代码都知道对于所实现的接口可能会调用的什么方法。所以,我们常把接口用于建立类和类之间的一个“协议”。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏积累沉淀

程序、进程、线程的关系

创建一个Java线程常见的有两种方式: 1.继承Thread类 两种表示方法: (1).外部类 import java.util.D...

1946
来自专栏龙首琴剑庐

Java可变参数列表

1、接受的传入参数情况 如public void test(String ...args){...}  1)不使用参数,如test() 2)使用一个或多个参数,...

3227
来自专栏运维技术迷

连仕彤博客[Python笔记] 判断0-9数字在字符串中出现的次数

要求 给定一些数字(0-9范围之间),判断数字在字符串中出现的次数。 例子的排序是依照算法的效率(时间复杂度)从低到高 例子1   # 定义数字 num = ...

4137
来自专栏大闲人柴毛毛

三分钟理解“原型模式”——设计模式轻松掌握

原型模式的官方定义: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 大白话: 现在有一个类,它要产生大量的对象,而且这些对象中的属性值大部分...

33614
来自专栏技术博文

php面向对象中static静态属性和静态方法的调用

这篇文章主要介绍了php面向对象中static静态属性和静态方法的调用,实例分析了static静态属性和静态方法的原理与调用技巧,需要的朋友可以参考下 本文实例...

2785
来自专栏学海无涯

12.Any、AnyObject与类型转化

1554
来自专栏云霄雨霁

排序算法类模板

1380
来自专栏积累沉淀

线程的创建

创建一个Java线程常见的有两种方式: 1.继承Thread类 两种表示方法: (1).外部类 import java.util.D...

2068
来自专栏软件开发 -- 分享 互助 成长

C++静态成员变量和静态成员函数小结

静态类成员包括静态数据成员和静态函数成员两部分。 一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成...

1875
来自专栏java学习

Java每日一练(2017/6/16)

题目要求 本期题目:(注解练习) 1.自定义一个可以用来接收用户登录信息的注解,将用户名和密码设置到验证的方法中, 例如: @LoginInfo(name="张...

29013

扫码关注云+社区

领取腾讯云代金券