引言:
写接口的时候,因为给方法改名的时候打了个空格,意外发现IDE提示:
Illegal modifier for the interface method talk; only public & abstract are permitted
那方法前到底什么时候加abstract呢?
正文:
我们都知道Java接口在定义的时候,不管是名称还是成员方法,都只能用public、abstract修饰。所以,无论我们给接口名、方法带不带public都是公有的——不可选的默认为公有。
abstract见得不多,因此笔者刚瞅到的时候,还是一楞……其实同public一样,也是不可选的默认。
因此如下的两种定义,在JVM识别的时候是没任何区别(除了2可以定义在别的java文件里了 ;-0 )的:
(1)
public abstract interface AdultBehavior{
abstract void teachChildrenToSpeak();
void talk();
public abstract void sayHi();
}
(2)
interface AdultBehavior{
void teachChildrenToSpeak();
void talk();
void sayHi();
}
补充(201109051308)
另外,笔者做了个测试。测试结论是:在任何名称的java文件中定义非public修饰(实际本身已是public)的接口,都将生成一个额外的以此接口名为文件名的class文件。再一次验证了上文观点。
分享到:
相关推荐
Java 接口和抽象类
Java中的接口定义了一个引用类型来创建抽象概念。接口由类实现以提供概念的实现。 在Java 8之前,一个接口只能包含抽象方法。 Java 8允许接口具有实现的静态和默认方法。 接口通过抽象概念定义不相关类之间的关系...
1,定义一个接口Assaultable(可攻击的),该接口有一个抽象方法attack()。 2,定义一个接口Mobile(可移动的),该接口有一个抽象方法move()。 3,定义一个抽象类Weapon,实现Assaultable接口和Mobile接口,但并没有给出...
掌握Java中抽象类和抽象方法的定义; 掌握Java中接口的定义,熟练掌握接口的定义形式以及接口的实现方法。 二、实验内容 1、按照要求使用Java进行编码。 编写一个抽象类Shape,其中有抽象方法getArea()和...
2、定义抽象类Shape,抽象方法为showArea(),再定义矩形类Rectangle,正方形类Square,圆类 Circle,和各自的属性。定义主类、主方法,在main方法中构造3个对象,调用showArea方法;定义接口DiagArea,其中包含方法...
抽象类和接口的区别 在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持...
创建一个Vehicle接口,在接口中定义2个抽象方法:启动start()和刹车stop()。 定义两个类Car和Bike,实现Vehicle接口,并具体实现接口start()和stop()方法 。 创建另一个类Test_Vehicle,在main主方法中分别通过使用...
实现抽象类和接口的类必须实现其中的所有方法。抽象类中可以有非抽象方法。接口中则不能有实现方法。 5.接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其...
结论:abstract class和Interface是JAVA语言中的两种定义抽象类的方式。Interface将abstract的概念作了更进一步的发挥。你可以想像Interface是“纯粹”的 abstract class,只可以包含抽象方法,也包括一些常量的定义...
java 抽象类与接口的练习,包括代码及注释,个人笔记
接口-定义方式 4.接口-实现 5.接口-与抽象类之区别 6.接口-应用示例(设计模式) 7.内部类-简介 8.内部类-作用 9.内部类-特殊语法规则 10.内部类-安全性 11.内部类-局部内部类 ...
JAVA:抽象类和接口 接口与抽象类 接口与抽象类
学生通过对该项目整体框架的搭建和对动物城信息管理等模块的设计与功能实现,训练了学生对项目框架的搭建、类的封装、抽象类定义与继承、接口的定义与接口的实现等Java OOP面向对象知识点的掌握。 本项目主要包括...
抽象类的基本概念 抽象类是Java中一种特殊的类,它不能被实例化,只能被继承。...抽象类和接口都是用于定义通用属性和方法的,但抽象类可以有构造方法,接口不能有。抽象类只能单继承,接口可以实现多继承。
abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。
使用抽象类定义一个“形状类”,能够计算周长和面积,分别用矩形、三角形、圆形对形状类进行继承,并定义测试类进行测试输出周长和面积。
要求:①定义一个接口,其中包含一个计算面积的抽象方法和一个计算周长的抽象方法;②输入数据为圆的半径、三角形的三条边长、矩形的长和宽,对于用户的输入要有友好提示;③程序能够排除输入过程中的非法数据(如:...
Java接口概念 Java编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。 Java接口主要有以下特点 1、接口中的所有方法都是抽象的,不能...
实验5:Java抽象类与接口.doc