-
2021-03-04 07:43:29
当我们获取到某个Class对象时,实际上就获取到了一个类的类型:
Class cls = String.class; // 获取到String的Class
还可以用实例的getClass()方法获取:
String s = "";
Class cls = s.getClass(); // s是String,因此获取到String的Class
最后一种获取Class的方法是通过Class.forName(""),传入Class的完整类名获取:
Class s = Class.forName("java.lang.String");
这三种方式获取的Class实例都是同一个实例,因为JVM对每个加载的Class只创建一个Class实例来表示它的类型。
获取父类的Class
有了Class实例,我们还可以获取它的父类的Class:
// reflection
----
public class Main {
public static void main(String[] args) throws Exception {
Class i = Integer.class;
Class n = i.getSuperclass();
System.out.println(n);
Class o = n.getSuperclass();
System.out.println(o);
System.out.println(o.getSuperclass());
}
}
运行上述代码,可以看到,Integer的父类类型是Number,Number的父类是Object,Object的父类是null。除Object外,其他任何非interface的Class都必定存在一个父类类型。
获取interface
由于一个类可能实现一个或多个接口,通过Class我们就可以查询到实现的接口类型。例如,查询Integer实现的接口:
// reflection
import java.lang.reflect.Method;
----
public class Main {
public static void main(String[] args) throws Exception {
Class s = Integer.class;
Class[] is = s.getInterfaces();
for (Class i : is) {
System.out.println(i);
}
}
}
运行上述代码可知,Integer实现的接口有:
java.lang.Comparable
java.lang.constant.Constable
java.lang.constant.ConstantDesc
要特别注意:getInterfaces()只返回当前类直接实现的接口类型,并不包括其父类实现的接口类型:
// reflection
import java.lang.reflect.Method;
----
public class Main {
public static void main(String[] args) throws Exception {
Class s = Integer.class.getSuperclass();
Class[] is = s.getInterfaces();
for (Class i : is) {
System.out.println(i);
}
}
}
Integer的父类是Number,Number实现的接口是java.io.Serializable。
此外,对所有interface的Class调用getSuperclass()返回的是null,获取接口的父接口要用getInterfaces():
System.out.println(java.io.DataInputStream.class.getSuperclass()); // java.io.FilterInputStream,因为DataInputStream继承自FilterInputStream
System.out.println(java.io.Closeable.class.getSuperclass()); // null,对接口调用getSuperclass()总是返回null,获取接口的父接口要用getInterfaces()
如果一个类没有实现任何interface,那么getInterfaces()返回空数组。
继承关系
当我们判断一个实例是否是某个类型时,正常情况下,使用instanceof操作符:
Object n = Integer.valueOf(123);
boolean isDouble = n instanceof Double; // false
boolean isInteger = n instanceof Integer; // true
boolean isNumber = n instanceof Number; // true
boolean isSerializable = n instanceof java.io.Serializable; // true
如果是两个Class实例,要判断一个向上转型是否成立,可以调用isAssignableFrom():
// Integer i = ?
Integer.class.isAssignableFrom(Integer.class); // true,因为Integer可以赋值给Integer
// Number n = ?
Number.class.isAssignableFrom(Integer.class); // true,因为Integer可以赋值给Number
// Object o = ?
Object.class.isAssignableFrom(Integer.class); // true,因为Integer可以赋值给Object
// Integer i = ?
Integer.class.isAssignableFrom(Number.class); // false,因为Number不能赋值给Integer
小结
通过Class对象可以获取继承关系:
Class getSuperclass():获取父类类型;
Class[] getInterfaces():获取当前类实现的所有接口。
通过Class对象的isAssignableFrom()方法可以判断一个向上转型是否可以实现。
更多相关内容 -
java集合继承关系图
2021-02-26 10:05:51Java中的集合类型的继承关系图 Java中的集合类型的继承关系图 IntelliJ IDEA 中如何查看一个类的所有继承关系(当前类的所有继承关系图) IntelliJ IDEA 中如何查看一个类的所有继承关系(当前类的所有继承关系图) ....面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。
数组虽然也可以存储对象,但长度是固定的;集合长度是可变的,数组中可以存储基本数据类型,集合只能存储对象。
集合类的特点:集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。
上述类图中,实线边框的是实现类,比如ArrayList,LinkedList,HashMap等,折线边框的是抽象类,比如AbstractCollection,AbstractList,AbstractMap等,而点线边框的是接口,比如Collection,Iterator,List等。
1、Iterator接口
Iterator接口,这是一个用于遍历集合中元素的接口,主要包含hashNext(),next(),remove()三种方法。它的一个子接口LinkedIterator在它的基础上又添加了三种方法,分别是add(),previous(),hasPrevious()。也就是说如果是先Iterator接口,那么在遍历集合中元素的时候,只能往后遍历,被遍历后的元素不会在遍历到,通常无序集合实现的都是这个接口,比如HashSet,HashMap;而那些元素有序的集合,实现的一般都是LinkedIterator接口,实现这个接口的集合可以双向遍历,既可以通过next()访问下一个元素,又可以通过previous()访问前一个元素,比如ArrayList。
抽象类的使用。如果要自己实现一个集合类,去实现那些抽象的接口会非常麻烦,工作量很大。这个时候就可以使用抽象类,这些抽象类中给我们提供了许多现成的实现,我们只需要根据自己的需求重写一些方法或者添加一些方法就可以实现自己需要的集合类,工作流昂大大降低。
2、Collection (集合的最大接口)继承关系
——List 可以存放重复的内容
——Set 不能存放重复的内容,所以的重复内容靠hashCode()和equals()两个方法区分
——Queue 队列接口
——SortedSet 可以对集合中的数据进行排序
Collection定义了集合框架的共性功能。
add方法的参数类型是Object。以便于接收任意类型对象。
集合中存储的都是对象的引用(地址)。
3、List的常用子类
特有方法。凡是可以操作角标的方法都是该体系特有的方法。
——ArrayList 线程不安全,查询速度快
——Vector 线程安全,但速度慢,已被ArrayList替代
——LinkedList 链表结果,增删速度快
4、Set接口
Set:元素是无序(存入和取出的顺序不一定一致),元素不可以重复。
——HashSet:底层数据结构是哈希表。是线程不安全的。不同步。
HashSet是如何保证元素唯一性的呢?
是通过元素的两个方法,hashCode和equals来完成。
如果元素的HashCode值相同,才会判断equals是否为true。
如果元素的hashcode值不同,不会调用equals。
注意,对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hashcode和equals方法。
——TreeSet:
有序的存放:TreeSet 线程不安全,可以对Set集合中的元素进行排序
通过compareTo或者compare方法来保证元素的唯一性,元素以二叉树的形式存放。
5、Object类
在实际开发中经常会碰到区分同一对象的问题,一个完整的类最好覆写Object类的hashCode()、equals()、toString()三个方法。
6、集合的输出
——4种常见的输出方式
——Iterator: 迭代输出,使用最多的输出方式
——ListIterator: Iterator的子接口,专门用于输出List中的内容
——Enumeration
——foreach
在迭代时,不可以通过集合对象的方法操作集合中的元素,因为会发生ConcurrentModificationException异常。所以,在迭代器时,只能用迭代器的放过操作元素,可是Iterator方法是有限的,只能对元素进行判断,取出,删除的操作,如果想要其他的操作如添加,修改等,就需要使用其子接口,ListIterator。该接口只能通过List集合的listIterator方法获取。
7、Map接口
Correction、Set、List接口都属于单值的操作,而Map中的每个元素都使用key——>value的形式存储在集合中。
Map集合:该集合存储键值对。一对一对往里存。而且要保证键的唯一性。
8、Map接口的常用子类
Map
——HashMap:底层是哈希表数据结构,允许使用 null 值和 null 键,该集合是不同步的。将hashtable替代,jdk1.2.效率高。
——TreeMap:底层是二叉树数据结构。线程不同步。可以用于给map集合中的键进行排序。
9、集合工具类
Collections:集合框架的工具类。里面定义的都是静态方法。
Collections和Collection有什么区别?
Collection是集合框架中的一个顶层接口,它里面定义了单列集合的共性方法。
它有两个常用的子接口,
——List:对元素都有定义索引。有序的。可以重复元素。
——Set:不可以重复元素。无序。
Collections是集合框架中的一个工具类。该类中的方法都是静态的。
提供的方法中有可以对list集合进行排序,二分查找等方法。
通常常用的集合都是线程不安全的。因为要提高效率。
如果多线程操作这些集合时,可以通过该工具类中的同步方法,将线程不安全的集合,转换成安全的。
10.比较
是否有序
是否允许元素重复
Collection
否
是
List
是
是
Set
AbstractSet
否
否
HashSet
TreeSet
是(用二叉排序树)
Map
AbstractMap
否
使用key-value来映射和存储数据,key必须唯一,value可以重复
HashMap
TreeMap
是(用二叉排序树)
11.总结:
List:add/remove/get/set。
1,ArrayList:其实就是数组,容量一大,频繁增删就是噩梦,适合随机查找;
2,LinkedList:增加了push/[pop|remove|pull],其实都是removeFirst;
3,Vector:历史遗留产物,同步版的ArrayList,代码和ArrayList太像;
4,Stack:继承自Vector。Java里其实没有纯粹的Stack,可以自己实现,用组合的方式,封装一下LinkedList即可;
5,Queue:本来是单独的一类,不过在SUN的JDK里就是用LinkedList来提供这个功能的,主要方法是offer/pull/peek,因此归到这里呢。
Set:add/remove。可以用迭代器或者转换成list。
1,HashSet:内部采用HashMap实现的;
2,LinkedHashSet:采用LinkedHashMap实现;
3,TreeSet:TreeMap。
Map:put/get/remove。
1,HashMap/HashTable:散列表,和ArrayList一样采用数组实现,超过初始容量会对性能有损耗;
2,LinkedHashMap:继承自HashMap,但通过重写嵌套类HashMap.Entry实现了链表结构,同样有容量的问题;
3,Properties:是继承的HashTable。
顺便说一下Arrays.asList,这个方法的实现依赖一个嵌套类,这个嵌套类也叫ArrayList!
Java中的集合类型的继承关系图
Java中的集合类型的继承关系图
IntelliJ IDEA 中如何查看一个类的所有继承关系(当前类的所有继承关系图)
IntelliJ IDEA 中如何查看一个类的所有继承关系(当前类的所有继承关系图) .embody{ padding:10px 10px 10px; margin:0 -20px; border-b ...
I/O继承关系图
InputStream/OutputStream继承关系图
iOS UI控件继承关系图
闲来无事,把UI控件的继承关系图整理下来,供自己和大家使用.
android 中组件继承关系图,一目了然
View继承关系图 Adapter适配器继承关系图 Activity继承关系图
Pycharm 查看一个类的继承关系图
Pycharm 查看一个类的继承关系图 在我们开发过程中: 无论是使用的开发框架自带的类, 还是我们自定义的类都特别多; 并且类之间单继承和多继承频繁使用, 这个继承,不仅仅是一级的继承关系,包括好几 ...
Unity类继承关系 图
UnityEngine(命名空间) 其他命名空间 其他类 Object(类) 其他类(继承自Object) Component(类)(继承自Object) 其他类(继承自Component) Tran ...
与 QWidget 有关的 Qt 可视化组件的继承关系图
与 QWidget 有关的 Qt 可视化组件的继承关系图
Java集合框架类图
Java集合框架的类图 http://blog.toruneko.net/28
随机推荐
oracle基础备份和还原
#全库备份 buffer inctype=complete file=c:\mminfo.dmp log=c:\mminfo.log #用户备份:用户mminfo下的所有表 buffer owner= ...
用RxJava处理嵌套请求
用RxJava处理嵌套请求 互联网应用开发中由于请求网络数据频繁,往往后面一个请求的参数是前面一个请求的结果,于是经常需要在前面一个请求的响应中去发送第二个请求,从而造成"请求嵌套" ...
VS2015/2013/2012 IIS Express Debug Classic ASP
参考资料: https://msdn.microsoft.com/en-us/library/ms241740(v=vs.100).aspx When you attach to an ASP Web ...
看别人的代码学习的css
- 菜单
Java学习-037-JavaWeb_006 -- JSP 动作标识 - include
这个动作是指在当前的页面中包含一个或多个 JSP 页面或者 HTML 文件,语法:
centos 安装vnc服务
1.安装tigervnc-server yum install tigervnc-server 2.启动vnc服务 vncserver:1 [错误提示待解决bad display name " ...
24、手把手教你Extjs5(二十四)模块Form的自定义的设计[3]
自定义的Form已经可以运行了,下面改一下配置,把Form里面的FieldSet放在Tab之下.修改一下ModuleModel.js中的data下的tf_FormSchemes下的方案,增加一个属性. ...
前端总结·基础篇·JS(四)异步请求及跨域方案
前端总结系列 前端总结·基础篇·CSS(一)布局 前端总结·基础篇·CSS(二)视觉 前端总结·基础篇·CSS(三)补充 前端总结·基础篇·JS(一)原型.原型链.构造函数和字符串(String) 前 ...
Backpropagation 算法的推导与直观图解
摘要 本文是对 Andrew Ng 在 Coursera 上的机器学习课程中 Backpropagation Algorithm 一小节的延伸.文章分三个部分:第一部分给出一个简单的神经网络模型和 B ...
Python3 词汇助手 有道翻译助手 有道导出文件格式转换
根据有道翻译软件的功能,结合实际用途,基于Python3.6写了一个有道翻译助手软件. 测试文件及源代码已上传至:https://github.com/MMMMMichael/Translation- ...
-
Java instanceof用法,判断继承.
2020-04-16 11:14:15object instanceof Object 左边是对象的实例,右边是类,用于判断2个类之间是否存在父子关系 左边的 1.下面代码的继承树(线)为: * Object -- String * Object -- Person -- Teacher * Object -- Person -- ...object instanceof Object 左边是对象的实例,右边是类,用于判断2个类之间是否存在父子关系
左边的
1.下面代码的继承树(线)为:
* Object -- String * Object -- Person -- Teacher * Object -- Person -- Student. */
2.左右一线 不报错.
左边的引用类型,要和右边的类型在一个继承线上.
(左指向对象object的引用类型 )
3.右子右父 即为true
右指代 object实例的类型,new 的类型
总代码:
Person.java
package opp.instanceof比较转化和类型转化; public class Person { }
Student.java
package opp.instanceof比较转化和类型转化; public class Student extends Person { protected void goToSchool(){ System.out.println("sumClass class can go to school."); } }
Teacher.java
package opp.instanceof比较转化和类型转化; public class Teacher extends Person{ }
Demo.java
package opp.instanceof比较转化和类型转化; public class Demo { public static void main(String[] args) { /** * Object -- String * Object -- Person -- Teacher * Object -- Person -- Student. */ Object object = new Student(); System.out.println("Object object = new Student();"); System.out.println(object instanceof Student);//true System.out.println(object instanceof Person);//true System.out.println(object instanceof Object);//true System.out.println(object instanceof Teacher);//false System.out.println(object instanceof String);//false System.out.println("==============="); Person person = new Student(); System.out.println("Person person = new Student();"); System.out.println(person instanceof Student);//true System.out.println(person instanceof Person);//true System.out.println(person instanceof Object);//true System.out.println(person instanceof Teacher);//false //System.out.println(person instanceof String);//编译报错 System.out.println("=========================="); Student student = new Student(); System.out.println("Student student = new Student();"); System.out.println(student instanceof Student);//true System.out.println(student instanceof Person);//true System.out.println(student instanceof Object);//true //System.out.println(student instanceof Teacher);//false编译器报错. } }
-
Java继承
2021-02-13 02:17:13Java继承1.什么是继承呢?类似人类中的继承(继承上一辈、上上辈的东西),在Java中就是将一个已知的类进行拓展,让一个新的类来继承这个已知的类,这样就能使这个新的类具有已知类的属性和行为。新的这个类被称为子类...Java继承
1.什么是继承呢?
类似人类中的继承(继承上一辈、上上辈的东西),在Java中就是将一个已知的类进行拓展,让一个新的类来继承这个已知的类,这样就能使这个新的类具有已知类的属性和行为。
新的这个类被称为子类或者派生类,已知的类被称为父类或者基类、超类。
2.为什么使用继承呢?
将一个类作为父类这样可以使其代码进行重用,在子类中就可以不再需要写父类中已有的属性或者行为了
3.那在Java中如何实现继承呢?
(1)先判断是否这些类中存在继承的关系——"is a"?
什么是"is a"关系呢?
简单的说就是是否两个或多个类中存在父类与子类,而平时进行比较时多将is a说成是一个,
(2)判断哪些属性和行为是子类与父类中重复的,可以重用的——"has a"?
什么是"has a"关系呢?
这一个可以简单的去思考与观察,如何发现子类与父类中有重复的属性或者行为,则该属性或者行为与该类是"has a"关系,"has a"关系的属性和行为都应该只写在父类。
(3)创建父类
在创建父类时和之前创建普通的类是一样的,关键在于需要将"has a"关系的属性或者行为写在父类中。
(4)创建子类
在创建子类时和之前的都差不多,关键在于多一个extends关键字
创建子类继承时需要写为public class Salary extends Employee
(5)如何书写子类的内容
①若子类中出现了父类中没有的属性或者行为,则直接在子类中添加即可
②若子类中需要改变父类中原有的行为——实现的方式有所不同,这时需要使用方法重写来完成不同的实现操作
方法重写
什么是方法重写呢?
刚刚其实已经说到了,当父类与子类之间需要将相同的行为拥有不同的实现时,就需要使用重写。
重写的好处——为什么Java中有方法重写呢?
可以按照自己的意愿去更改父类的方法实现。
一般情况下我们会以继承与重写一起说它们的好处
好处:继承可以使一个类中的代码得到重用,而重写在继承的基础上又可以使子类对父类已有的方法进行重新的实现。
重写有一些注意事项:
①在重写父类的行为时,需要使子类的方法的返回类型、方法名、形式参数列表与父类一致,若仅仅只是方法名相同,参数列表不同则变成了方法的重载。
②访问修饰符的访问等级不能小于父类(将在下一章中进行讲解)
③子类抛出的异常不能比父类多(在下一册中进行讲解)
3.那在Java中如何实现继承呢?
☆(6)实例化子对象
如何实例化一个子对象呢?
和平时实例化对象一样。
注意:子类可以调用父类中的方法和属性,但是父类则不能调用子类中独有的属性或行为。
在内存中创建一个对象时,究竟发生了什么呢?
首先创建了一个父类
再创建一个子类
创建子类的过程实际上时在父类的基础上再加上了子类附加的内容
顺便提一句:
Java是单继承语言,也就是说一个父类可以有很多子类,而一个子类只能最多拥有一个父类
除了单继承语言外,还有多继承语言如C++,继承关系就相当的混乱
根据父类的内容来判断是否能进行某些方法的调用
注意事项:在Java中所有的类都具有一个父类(根类)——object类
object可以是一个类的直接父类,也可以是一个类的间接父类,关键看该类是否继承了其它类
由于Java中object是所有类的父类,因此,所有类都可以调用object类的方法
public final Class getClass();
public int hashCode();
public boolean equals(Object x);
protected Object clone() throws CloneNotSupportedException;
public String toString();
protected void finalize() throws Throwable;
public final void wait() throws InterruptedException;
public final void notify();
注意:Java中object有一个常用的方法toString(),可以将引用转为字符串打印,如果没有调用该方法直接打印引用,Java会自动调用该方法,打印出其地址。
除了object中的toString()方法,常用的还有equals()方法,该方法用于判断是否两个值相等和==的用处不一样
==用于检测是否两个引用指向同一对象,才能返回true
equals()则只需要匹配值就返回true,若需要更改则重写equals()方法
在重写equals()方法时会自动添加一个hashCode()方法,该方法是计算equals()中比较值的哈希码(了解),若两个对象是相等的,则哈希码相同
如果把父类某个方法全部重写,只需要部分修改,那怎么书写呢?
这个时候我们需要使用super关键字,这个关键字和我们之前讲的this关键字很类似,只不过super关键字代码父类对象,而this代表的是本类对象。
在子类中也可以调用父类的构造器super(),如果在父类中没有无参的构造,这种情况下子类中super()不会通过编译。
如果我不想一个类被继承或者一个类中某个行为被继承,那怎么做到呢?
使用final关键字,之前学习中,使用final关键字构建的符号常量不能被更改
同理,在类或者方法中使用final关键字则该类或者改方法不能被更改——换言之则是不能被继承或者重写。
在实例化子类对象时其过程究竟是什么样子的?
注意事项:当一个子类被实例化时,父类会先被构造,父类构造器必须在子类的构造器执行前执行,若出现祖父类,则从祖父类构造→父类构造→子类构造。
在一个对象被实例化时,发生下列事件序列:
①new运算符调用子类的构造器。
②子类会用this关键字调用子类的其它构造器,最后在执行this之后的语句。
③在子类的构造器中的任何语句执行前,父类的构造器必须用super()关键字调用,如果没有显示的调用super(),则便与其会用super()调用无参数的父类构造器。
④如何父类也有父类,则先执行祖父类,再依次执行。
⑤在执行过程中会执行到最高的父类object。
⑥object执行后依次往子类执行
⑦构造器也会随着执行过程依次执行
注意:如果要使用super()或者this(),则必须将其放在执行代码第一行
如果没有调用super()或者this(),则编译器会自动调用无参构造器。
-
java关键字extends(继承)、Supe(父类引用空间)、 This(方法调用者对象)、Instanceof(实例类型-判断...
2021-02-28 11:20:36java 继承使用关键字extends 继承的作用:减少代码量,优化代码继承的使用注意点:1子类不能继承父类的私有变量2.子类不能继承父类的构造方法3.子类在调用自己的构造方法时 会默认调用父类的无参构造方法4.私有方法... -
[Java] 继承 和 多态(学习总结)
2022-01-10 16:47:461.继承主要表示概念层上的 is-a 的关系 2.什么是继承: 举个例子: 类A(动物) -> 类B(猫) --类A 类B 之间有层级关系 类B 继承 类A 、类B 派生于 类A 、类B 扩展于 类A 类A : 父类 基类 类B : 子类 派生类 ... -
JAVA 集合 接口继承关系和实现,List,Set,Map(总结)
2019-11-06 14:45:011.接口继承关系和实现 集合类存放于 Java.util 包中,主要有 3 种:set(集)、list(列表包含 Queue)和 map(映射)。 1. Collection:Collection 是集合 List、Set、Queue 的最基本的接口。 2. Iterator:迭代器,... -
java中的继承和多态
2021-02-28 16:44:33特点:在继承关系中,父类更通用、子类更具体。父类具有更一般的特征和行为,而子类除了具有父类的特征和行为,还具有一些自己特殊的特征和行为。在继承关系中。父类和子类需要满足is-a的关系。子类是父类。表示父类... -
java集合复习笔记-java集合继承关系图
2014-08-26 16:20:59*面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。 *数组虽然也可以存储对象,但长度是...1、Collection (集合的最大接口)继承关系 -
Java继承的综合案例
2021-04-23 19:25:20文章目录继承的综合案例1.1 综合案例:群主发普通红包1.2 案例分析...请根据描述,完成案例中所有类的定义以及指定类之间的继承关系,并完成发红包的操作。 1.2 案例分析 根据描述分析,得出如下继承体系: 1.3 案例实 -
Java集合继承关系图
2019-11-01 15:49:162、Collection (集合的最大接口)继承关系 ——List 可以存放重复的内容 ——Set 不能存放重复的内容,所以的重复内容靠hashCode()和equals()两个方法区分 ——Queue 队列接口 ——SortedSet 可以对... -
java判断枚举是否包含
2021-02-26 21:40:34实验报告课程名称: Java 程序设计 成绩评定: 指导教师: 实验项目名称:接口、泛型、枚举、内部类与异常 学生姓名: 学号: 专业班级: 实验地点: 实验时间: 实验项目......Java语言提供了一种称为枚举的类型 定义方法.... -
java之封装,继承,多态
2022-01-28 17:07:35 今天总结一下关于Java的三大特性,封装,继承,多态。其实关于三大特性对于从事编程人员来说都是基本的了,毕竟只要接触Java这些都是先要认识的,接下来就系统总结一下。 二,封装 先来说说特性之一:封装 ... -
Java线程池详解(为什么要有线程池、线程池的继承关系、线程池的底层原理、手工创建线程池、JDK内置的4大...
2019-03-02 12:42:422. 线程池的继承关系3. 线程池的底层原理4.线程池的创建与使用4.1 手工创建线程池4.2 向线程池提交任务4.2.1 execute()方法4.2.2 submit()方法5.JDK内置的4大线程池5.1 普通调度池5.1.1 无大小限制的线程池5.1.2 ... -
java判断题
2021-02-12 09:58:25判断题1、Java语言有三种技术平台,分别是JavaSE、JavaME、JavaEE(T) 2、Java是一门高级计算机语言。(T) 3、Java语言具体跨平台的特性(T) 4、JDK工具中自带了一个JRE工具(T)5、JDK安装的时候不可以修改安装目录(F)6... -
JAVA中什么是继承?
2021-02-12 10:29:01展开全部继承在本职上是32313133353236313431303231363533e78988e69d8331333366306435特殊一般的关系,即常说的is-a关系。子类继承父类,表明子类是一种特殊的父类,并且具有父类所不具有的 一些属性或方法。1.Java... -
在类的继承关系中,需要遵循以下哪个继承原则?_学小易找答案
2021-03-11 14:17:19【单选题】在类的继承关系中,需要遵循以下哪个继承原则? 【单选题】类中的一个成员方法被下面哪个修饰符修饰,该方法只能在本类被访问? 【单选题】已知类的继承关系如下: class Employee; class Manager extends ... -
java 获取jar包中的类 继承关系无法获取的问题
2017-04-26 06:57:09读取本地jar包获取的类,继承关系没办法获取吗? 我已经试过如果是在这个程序里实现了类A的类C,是可以用isassignablefrom()判断出来,可是从jar包里获取的类B就没办法。 请问我该怎么解决这个问题? -
Java中类型判断的几种方式
2021-02-12 09:08:341. 前言在Java这种强类型语言中类型转换、类型判断是经常遇到的。今天就细数一下Java中类型判断的方法方式。2. instanceofinstanceof是Java的一个运算符,用来判断一个对象是否为一个类的实例 。用法:boolean ... -
练习-Java继承和多态之对象类型的转换(15)
2022-02-12 16:47:22本关任务:判断梨类、苹果类和水果类的关系,并通过对象类型转换调用彼此的属性和方法。 /** * 判断梨类、苹果类和水果类的关系,并通过对象类型转换调用彼此的属性和方法。 */ class Fruits { public String ... -
Java继承题目练习
2020-07-22 22:51:36一、选择 在Java中,以下程序的输出结果是A A. Super-->print B....C....D.... 在Java中,以下关于方法重载和方法重写描述正确的是B ...A....B....C....D. 方法重写需要出现在满足继承关系的子类中 哪个选项中的方.. -
【Java】第8章 JAVA继承和多态 头歌Educoder实训作业(八)
2021-11-13 11:44:22第1关:学习-Java继承和多态之子类继承性 任务描述 本关任务:定义一个 Dog 类,继承 Animal 类(Animal 类已经定义),定义自己的性别属性,并定义获取和设置性别属性的方法和 sleep 方法。 相关知识 继承是 Java ... -
java封装继承多态
2018-12-20 16:04:19java封装继承多态 面向对象 面向对象的三个特征: 封装(Encapsulation); 继承(Inheritance); 多态(Polymorphism)。 我的总结: 面向过程:强调的是具体的功能实现;(执行者) 面向对象:强调的是具备... -
Eclipse 查看类继承和实现关系(包括子类)
2019-09-11 21:29:36查看源码的时候,有时候需要搞清楚类的继承关系,那么要怎么搞呢?今天就和大家一起学习一下。 就拿HashMap来说吧。 方法一:使用快捷键Ctrl+T 可以实现,效果如下: 下面的都是HashMap的子类 例如... -
Java种注解的继承问题
2016-10-08 02:15:55@Inherited //不能继承接口,只能继承类 @Documented public @interface Description { String value(); } //被注解的类 @Description("I am Person") public class Person { @Description("I am Person Method") ... -
Java封装+继承+多态 代码实例练习
2021-11-27 17:49:58* 封装+继承+多态练习 */ public class Application { public static void main(String[] args) { /* * 封装:在类中将成员变量进行私有化,对外部提供公用的get和set方法以便于外部对类的私有成员变量进行访问... -
java什么类不能被继承
2021-02-28 12:03:58在java中有一些类并不能被继承,我们可以通过这些不能继承的类设计一些只读的不可变类。Java中不能被继承的类有哪些?在Java中,只要是被定义为final的类,也可以说是被final修饰的类,就是不能被继承的。这是final的... -
Java继承练习题
2020-05-11 20:18:34一、选择题 A A. Super–>print B....print C....D....2.在Java中,以下关于方法重载和方法重写描述正确的是 A A.... 方法重写需要出现在满足继承关系的子类中 C A. public static void bark(){} B. pub -
对Java中继承、多态与重写的关系理解 -----Jack
2018-07-07 20:00:26小杰作为一个刚刚入门的萌新程序猿,刚刚结束为期三周的Java教学,因时间紧迫小杰