java如何判断一个类是否实现了某个接口?

作者&投稿:机时 (若有异议请与网页底部的电邮联系)
java 一个类如何实现接口,实例对象?~

这是为了实现 动态互换
因为有一天你一个类C 实现了A
你不想再使用B 了。那么你只是需要 修改一下就行 A a =new C();
而不必去到处更改B 的类型。
而且这也是Java设计原则中的一个。依赖抽象不依赖具体。
就那一个最常见的例子,你就知道了。
List list =new ArrayLIst();

List list = new LinkedList();
这就互换了啊 ArrayList 是数组。LinkedList是链表 但是 不需要更改其他的代码。

Class中有个方法 public native boolean isAssignableFrom(Class cls)用来判断子类是否继承于父类的或者父接口的。
你会这样子写:
Class clazz = ....;
clazz.isAssignableFrom(子类名称);返回true说明是挂号里的类的父类或父接口。
clazz.isAssignableFrom(子类名称)里的子类名称跟版本有关,好像是1.5以上的JDK这里的子类名称都是使用的泛型编程。即传的传数是
class 类型的,你用的时候自己斟酌下版本问题。
而常用的instanceof(class ..)是指该实例是否属于挂号中的类的父类的一个实例。
如上面的例子:
class A{
}
public class B extends A{
public static void main(String[] args){
Class clazz = B.class;
Class class1 = A.class;
System.out.println(class1.isAssignableFrom(clazz));
if(class1.isAssignableFrom(clazz)){
System.out.println("A是B的父类");
}else{
System.out.println("A不是B的父类");
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程[1] 。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点[2] 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等[3] 。
JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一些Java工具和Java的核心类库(Java API)。不论什么Java应用服务器实质都是内置了某个版本的JDK。主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如,IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK[13] 。
另外,可以把Java API类库中的Java SE API子集和Java虚拟机这两部分统称为JRE(JAVA Runtime Environment),JRE是支持Java程序运行的标准环境[14] 。
JRE是个运行环境,JDK是个开发环境。因此写Java程序的时候需要JDK,而运行Java程序的时候就需要JRE。而JDK里面已经包含了JRE,因此只要安装了JDK,就可以编辑Java程序,也可以正常运行Java程序。但由于JDK包含了许多与运行无关的内容,占用的空间较大,因此运行普通的Java程序无须安装JDK,而只需要安装JRE即可[15] 。

Class中有个方法 public native boolean isAssignableFrom(Class<?> cls)用来判断子类是否继承于父类的或者父接口的。

你会这样子写:

Class clazz = ....;

clazz.isAssignableFrom(子类名称);返回true说明是挂号里的类的父类或父接口。

clazz.isAssignableFrom(子类名称)里的子类名称跟版本有关,好像是1.5以上的JDK这里的子类名称都是使用的泛型编程。即传的传数是

class<T> 类型的,你用的时候自己斟酌下版本问题。

而常用的instanceof(class ..)是指该实例是否属于挂号中的类的父类的一个实例。 

如上面的例子:

class A{

}

public class B extends A{

public static void main(String[] args){

Class clazz = B.class;

Class class1 = A.class;

System.out.println(class1.isAssignableFrom(clazz));

if(class1.isAssignableFrom(clazz)){

System.out.println("A是B的父类");

}else{

System.out.println("A不是B的父类");



意思就是实现了该接口的方法。。
比如说就是:实现person接口里面定义的方法。。

使用instanceof 关键字,instanceof是Java的一个二元操作符,是Java的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,也可以测试接口。
public class Test
{
public static void main(String[] args)
{
Student student = new Student();
System.out.println(student instanceof Person);
}
}

class Student implements Person
{
}

interface Person
{
}

java有个操作符叫instanceof
可以判 boolean a=student instanceof Person 这里 student应该是对象实例


java如何判断一个数是不是整数
如下图所示:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java具有简单性、面向对象...

java如何判断一个类是否实现了某个接口?
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点[2] 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等[3] 。JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境...

我想问问关于java的问题。 1,怎样判断一个java技术人的技术水平? 2、j...
你的问题都不是很好回答,我尝试给你答一下。1、要判断一个java技术员水平,首先要看经验。原因就是java是一个开源语言,各色各样的框架只要有人想得到,或者别的语言出现过,都有可能在java里出现,经验就是指与各种框架、思想打交道的时间。这个时间越长,对问题及平台的了解也就越全面,在很多...

java如何用if语句判断一个字符串
import javax.swing.JOptionPane;public class $ { public static void main(String[] args) { String answer = JOptionPane.showInputDialog("请您回答(是\/否)"); if ("是".equals(answer)) { \/\/ do some thing for a System.out.println("a"); } else if ("否"....

java 数组有没有方法直接判断某一个项是否存在
楼上的不要误人子弟。strArr[4]是会内存溢出的。因为strArr只有3个元素,可以通过strArr.length来判断strArr的元素个数,只有strArr[0]-strArr[strArr.length-1]是合法的

在java程序中,怎样写一段程序实现判断一个表(名)是否存在?
在oracle数据库执行select *from tab 结果是数据库当前用户的所有表名称,我没用过mysql不知道行不行;oracle里面没有问题:比如查一下用户表是否存在:select *from tab where tname = 'SM_USER';你可以在mysql执行一下这个sql: select *from tab;有结果就可以使用,结合你的程序做判断在处理。

如何判断一个字符串中是否都是数字
Java中判断字符串是否全是数字:可以使用正则表达式:public boolean isNumeric(String str) { Pattern pattern = Pattern.compile("[0-9]*");Matcher isNum = pattern.matcher(str);if (!isNum.matches()) { return false;} return true;} 但是这个方法并不安全,没有对字符串进行空校验。在...

JAVA如何用正则表达式判断一个字符 它必须是数字组成且“-”必须是在...
import java.util.Scanner;public class ReUse { public static void main(String[] args) { Scanner sc=new Scanner(System.in);\/\/定义输入对象 String input="";boolean right=false;do{ input=sc.nextLine();\/\/输入一个字符串 right=input.matches("^\\\\d+-+\\\\d+$");\/\/正则表达式 if(!

java 怎样判断一个list里是否有一个对象(object)?
int index = Collections.binarySearch(list)如果index <0,则表示没有该对象,如果index >=0,则表示该对象在list中的位置下标,因此,这里面我们不需要直接取出对象判断,主要看Comparable接口如何实现 String已经实现了equals和comparable接口的方法 所以可以直接使用上诉功能,进行判断,而不用一一遍历。

用java表达式怎么判断一个数字是偶数
if (num % 2 == 0) { return "是偶数";} else { return "不是偶数";}判断该数对2取余是否等于0,等于0的话就是偶数,不等于0的话就不是偶数。

宽城区17899002487: java中判断一个对象是否实现了某个接口 -
保虹妇炎: 实际思路:先通过类的getInterfaces方法获取到当前类实现的所有接口(包含父类接口),之后分别与要判断是否实现的接口进行比较,如果返回true的话,表示实现了,否则表示未实现:举例: public boolean isInterface(Class c, String ...

宽城区17899002487: java如何判断一个类是否实现了某个接口? -
保虹妇炎: Class中有个方法 public native boolean isAssignableFrom(Class<?> cls)用来判断子类是否继承于父类的或者父接口的. 你会这样子写: Class clazz = ....; clazz.isAssignableFrom(子类名称);返回true说明是挂号里的类的父类或父接口. ...

宽城区17899002487: java 中如何检测已经实现了接口? -
保虹妇炎: 用instanceof 检测某个对象是否实现了某接口. 例如: obj instanceof IDemo;返回类型为boolean

宽城区17899002487: java怎么确定一个类是否被实例化 -
保虹妇炎: if(类变量 != null){ //类已经被实例化了,直接将显示修改为true.}else{ //类变量 = new 类(); //将显示修改为true.}//别忘了把当前窗体可视改为false啊!

宽城区17899002487: java中看类图怎么知道是实现还是继承?小白傻傻分不清 -
保虹妇炎: 楼主您好 严格来说,类图中的接口和类是有颜色区分的,或者接口有一个图标代表 如果没有的话确实是无法分辨的

宽城区17899002487: java 判断一个类 是不是接口 -
保虹妇炎: public class className(){}这种是普通类 public interface className(){} 这种就是接口

宽城区17899002487: Java 内部是如何处理判断一个对象是否被实例化的? -
保虹妇炎: 首先明确一个概念,Java里只有“值传递”,没有“引用传递”.好吧,我知道很多人听到这个会觉得三观有点动摇,我来解释一下.Java有一个分裂的类型系统,包括用户自定义类型,也就是大家都熟悉的Object及其各种子类,还有基本类型...

宽城区17899002487: java中如何判断一个类类型是不是具体类型 -
保虹妇炎: 其实你是想说这个类有没有实现接口吗? 如果是这样,你可以通过getclass().getinterfaces() 来判断是否实现了接口,如果为空或长度为0,表示这个是类

宽城区17899002487: 在java中,一个子类实现了两个接口,两个接口有同样的方法名,怎么知道是实现了哪一个啊 -
保虹妇炎: 这就是c++里多重继承最要命的问题.不过java的话 接口的方法都是没有方法体的 可以像1楼说的看参数 如果参数也一样的话那就是2个都实现 如果类c 继承了接口a和b a和b里都有d方法 c实现了d方法以后用a和b的引用都可以调用d方法

宽城区17899002487: java中,一个类实现了某个接口,什么意思?实现它,可以干什么 -
保虹妇炎: 接口,你可以理解为一种规范,某个类实现了某个接口,就必须去实现该接口的所有方法,实现的方法你用来干嘛,他不管,你想干嘛就干嘛,只要你实现了就好.也可以这么说,实现了接口的类,必定有接口中的方法,哪怕是空实现.再深入一点,你可以再去了解一下接口回调,这块有比较多接口的应用.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网