「java类继承关系图」java继承图示
今天给各位分享java类继承关系图的知识,其中也会对java继承图示进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java中类与类之间的关系
- 2、Java的IO操作中各种类的继承关系是怎样的
- 3、请问如何看java api中的继承关系图啊??
- 4、JAVA中什么是继承?
- 5、请问这两个java类图怎么看,里面的箭头哪个表示继承,哪个表示关联,关联的话怎么关联?
- 6、为什么Java类只能继承一个父类?
java中类与类之间的关系
类与类之间最常见的关系主要有三种:依赖(uses-a)、聚合(has-a)和继承(is-a)。
下面以在线书店订单系统为例,来详细的讲述这三种关系的概念。
在线书店订单系统的主要功能是:注册用户可以登录到网上书店选购图书,在线填写订单,并支付购书款。书店确认已经收到购书款时,按用户留下的地址邮寄图书。可以在这个系统中建立几个类,有图书(book)、账户(account)、订单(order)、地址(address)等,如下图所示:
依赖(uses-a)
依赖关系是类中最常见的关系,例如订单类(order)需要访问用户账户类(account),所以在订单类中需要引用账户类,即订单类依赖账户类,但图书类不需要依赖账户类。
如果修改账户类,会影响到订单类。依赖的实质就是类中的方法可以操作另一个类的实例。在实际程序设计中,建议尽量减少相互依赖类的数量。如下图所示:
聚合(has-a)
因为订单需要指明订购什么图书,这就涉及到图书类,即包含了图书类。聚合与依赖关系的不同在于,订单类可以不拥有所有账户类对象,但是必须拥有所有图书类对象,因为图书类的对象是订单的主要目的,如下图所示:
继承
继承就是一个类能调用另一个类的所有数据成员,并在当前类中不需要再重新定义,本章已经讲得很明白了。
Java的IO操作中各种类的继承关系是怎样的
这是以前学习流时候的笔记,希望对你有用--------------------------------------------------------------------------------------------------IO流有三种分类方式:
一、按流的方向分为:输入流和输出流;
二、按流所处理的数据类型划分为:字节流和字符流;
三、按流的功能不同分为:节点流和处理流。
字节流: 可以从/向一个特定的I/O设备读/写数据的流,成为字节流。也称为低级流。
InputStream/OutputStream 字节
字符流
Reader,Writer
处理流: 实现对一个已存在的流的连接与封装,通过所封装的流的功能调用实现数据读/写功能的流。也称高级流。
处理流-输入流 字符输入流:InputStreamWriter/ 输入处理流:BufferedReader
处理流-输出流 字符输出流:OutputStreamWriter/ 输出处理流:BufferedWriter PrintStream PrintWriterFileInputStream 读取文件流
FileOutputStream写文件流用高级流封装低级液压,看低级流指向的设备而决定操作的对象指向设备的流
System.in 标准输入设备(从键盘输入)
System.out 标准输出设备(从控制台输出)
FileInputSteam 文件输入流
FileOutputStream 文件输出流
请问如何看java api中的继承关系图啊??
Object,Component,Button是三个类,分别位于java.lang包, java.awt包, java.awt包
包名就是起限定作用的
java中所有的类都是从Object类派生而来的
这里,Button类从Component类继承而来,Component类又从Object类继承而来
JAVA中什么是继承?
继承在本职上是特殊一般的关系,即常说的is-a关系。子类继承父类,表明子类是一种特殊的父类,并且具有父类所不具有的 一些属性或方法。
1.Java继承的语法格式:
Java继承的关键字是:extends
public class 子类名 extends 父类名{...}
如: public class UNStudent extends Student {...} 注:1.子类又称超类,拓展类 ;父类又称基类。
2.Java中类的继承只能是单继承(单根继承),即一个类只能继承一个父类,但是一个类可以由多个类来继承它。
3.Java会给每一个没有设置父类的类,自动添加一个父类就是Object 。
扩展资料:
一、子类继承父类的结果
1.子类继承父类后,继承到了父类所有的属性和方法。 注:是所有。
2.子类可调用的方法也要看情况而定:
子类和父类在同一个包下时 “子类和子类的对象”可以调用父类的默认的,受保护的,公有的属性以及方法。
子类和父类在不同的包下时,在子类中可以调用受保护的,公有的属性以及方法,而子类的对象可以调用受保护的,公有的属性以及方法。
二、方法的重写
1.当子类和父类都有某种方法,而子类的方法更加要求细致,或者实现功能不同,就需要方法的重写。
2.重写条件
①必须要存在继承关系;只有继承之间的关系才能有方法的重写
②方法的返回值类型,方法名,参数个数,参数类型,参数顺序,必须要完全一致;
如:父类中方法 public void play (int n ; String s){方法体1...}
重写后的子类方法public void play(int n ; String s){方法体2...}
3.子类重写方法时的访问修饰符可以大于或者等于父类方法的访问修饰符。
4.重写后的方法会被优先调用。
三、自动转型
自动转型的实现要求有继承关系
格式如下:父类名 对象名 = new 子类构造方法;
如:Student stu = new UNStudent;
而强制转型格式如下:子类名 对象名 = (子类名)父类对象名
如:UNStudent un = (Student)stu;
自动转型可以拓宽方法的作用访问域
在使用自动转型后,子类自己定义的方法是不能在自动转型后执行;
原因是因为Java的编译机制,它会优先判断父类中是否存在该方法,如果存在则通过编译,如果不存在则报错。
第二种自动转型:转型后只需要不同类的不同对象调用想吐的方法,很方便!
/**访问修饰符 返回值数据类型 方法名(父类类型 参数名,...){
调用方法。
}
父类名 对象名 = new 子类名;
子类名 对象名 = new 子类名;
方法名(对象名);
*/
比如拿到驾驶证为A2的人,可以驾驶重型货车,当然也可以驾驶大型货车,中型货车,小型货车,小客车,小轿车,摩托车... 可以选择第二种自动转型的方法,便于调用同一个方法。
自动转型好处:1.减少冗余代码;2.在方法设置参数时,扩大访问范围。
四、多态
多态是由方法重载,继承,方法重写,自动转型等技术的组合。
五、为什么需要继承?
1.提高代码的重用性。
2.提高程序的扩展性。
参考资料:
JAVA继承总结
请问这两个java类图怎么看,里面的箭头哪个表示继承,哪个表示关联,关联的话怎么关联?
推荐你看下这篇文章,很详细。看完后你肯定你看懂这两幅图表示的什么意思
如果你需要有偿辅导服务的话,也可以私信我。
为什么Java类只能继承一个父类?
有取必有舍。Java认为多重继承不是一个很重要并且不是没有就不行的特性,但是他带来的危害却大于他的好处,所以舍弃。同理对于指针、内存管理都一样道理。
我同意有些人的回答说Java不信任程序员。正因如此,所以Java没有指针、不需要内存管理、也没有多重继承。但是,程序员可以说是最不值得信任的一群群体,不然为何需要专门的测试人员?所有语言都在一定程度不信任程序员,只是看程度如何而已。如果信任程序员的能力,应该去使用汇编语言、如果信任程序员的能力和水平,应该让程序员自己查BUG测试。
Java相比C++选择对程序员的给予更低信任度而换取更高的代码安全性。即Java选择了舍弃更多的功能或性能而选择更高的保险性罢了。
---------------------------用Java实现多重继承的方式-----------------------------
而对于多重继承的实现方式。其实并不应该像很多人说的那样使用实现多个接口实现的。如果这样,将产生大量的“CTRL C+CTRL V”,当你发现你大量的CTRL C+CTRL+V时,就几乎可以断定。你的代码写得不好了。
“实现上的继承就跟过度使用goto语句一样,使程序拧巴和脆弱。结果就是,面向对象系统通常遭受复杂和缺乏复用的痛苦。”— John Ousterhout( Tcl and Tk 的创始人) Scripting, IEEE Computer, March 1998“面向对象编程语言的问题在于,它总是附带着所有它需要的隐含环境。你想要一个香蕉,但得到的却是一个大猩猩拿着香蕉,而其还有整个丛林。”— Joe Armstrong(Erlang语言发明人)以下就以大猩猩的例子举例实现多重继承。现有抽象对象猩猩和对象大猩猩、拿着香蕉的大猩猩、拿着苹果的大猩猩、拿着香蕉和苹果的大猩猩,四个对象。继承关系图如下:(word作图,某些箭头不规范,请见谅)
并且再考虑有一个人类的类。里面有一个方法:“喂猩猩”,参数是“猩猩”类型。注:猩猩是抽象类。
Version 1 --------使用组合+继承
这样,既实现了多继承、也实现了多态——无论是大猩猩,还是拿着香蕉和苹果的大猩猩都能传递参数给人类的“喂猩猩的方法”了。
但这样还有一个问题,假如我还需要在大猩猩的层面扩充继承的更多数量的类如继承“野生动物”。而在人类的方法新增远离野生动物的方法:
Version2----------接口+组合
这就是我们说的用接口实现多重继承。是因为这样可以把子类利用多态赋给多个父类(接口),而把主要的方法使用组合封装起来而避免多次实现接口的方法。需要多少钟父类型,就在顶层增加接口实现。注:本初的猩猩类依旧可以设计为“类”即最顶层可以考虑拥有一个(抽象)类,也可以全部都是设计为接口,具体看业务需求和复杂度而定。
以上是参加完Oracle 新员工培训后所思所得,有错请评论指出。
java类继承关系图的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java继承图示、java类继承关系图的信息别忘了在本站进行查找喔。
发布于:2022-12-05,除非注明,否则均为
原创文章,转载请注明出处。