本篇文章给大家谈谈java向上造型的意义,以及向上造型有什么意义对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
1、java向上造型的意义?2、请求大神解释一下java中向上造型有什么作用3、java里面的向上造型是什么?_?抽象类和接口有什么关系?c++里面的虚函数是java里面的接口4、Java中 向上造型是什么概念是向上转型么 什么情况下用
java向上造型的意义?
向上转型是子类对象当成父类对象来使用,也就可以这样理解,父类引用指向子类对象。
那么比如有一个方法m,它传的参数是父类的类型,m(father
f),执行的父类中已有的某个方法
而你实际传的是它的子类
son,如果子类中有重写父类的方法,那么java机制就会自动的执行子类的那个方法。
想象下,如果你不用父类对象引用,那么你实现每个动物的m方法的时候都要去写一次,而用了这个,java自动判断实际上是哪个对象就用哪个的方法。
而且你如果添加别的子类,也只需要重写出这个类和重写的父类方法就可以了,否则你还要去改m方法。
也就是说,向上转型体现了面向对象的特点,也增加了程序的扩展性。
请求大神解释一下java中向上造型有什么作用
继承可以拓展类的功能,而向上造型是不能使用在子类中拓展的这些属性和方法的,只能使用从父类继承来的方法和属性
java里面的向上造型是什么?_?抽象类和接口有什么关系?c++里面的虚函数是java里面的接口
向上造型一个泛型对象的引用
例如,假设我们有很多箱子,每个箱子里都装有不同的水果,我们需要找到一种方法能够通用的处理任何一箱水果。更通俗的说法,A是B的子类型,我们需要找到一种方法能够将CA类型的实例赋给一个CB类型的声明。
为了完成这种操作,我们需要使用带有通配符的扩展声明,就像下面的例子里那样:
ListApple apples = new ArrayListApple();
List? extends Fruit fruits = apples;
“? extends”是泛型类型的子类型相关性成为现实:Apple是Fruit的子类型,ListApple 是 List? extends Fruit 的子类型。
JAVA中抽象类与接口是java语言中对抽象概念进行定义的两种机制。
我们都知道在面向对象的领域一切都是对象,同时所有的对象都是通过类来描述的,但是并不是所有的类都是来描述对象的。如果一个类没有足够的信息来描述一个具体的对象,而需要其他具体的类来支撑它,那么这样的类我们称它为抽象类。比如new Animal(),我们都知道这个是产生一个动物Animal对象,但是这个Animal具体长成什么样子我们并不知道,它没有一个具体动物的概念,所以他就是一个抽象类,需要一个具体的动物,如狗、猫来对它进行特定的描述,我们才知道它长成啥样。
接口是一种比抽象类更加抽象的“类”。这里给“类”加引号是我找不到更好的词来表示,但是我们要明确一点就是,接口本身就不是类。 接口是用来建立类与类之间的协议,它所提供的只是一种形式,而没有具体的实现。同时实现该接口的实现类必须要实现该接口的所有方法,通过使用implements关键字,他表示该类在遵循某个或某组特定的接口,同时也表示着“interface只是它的外貌,但是现在需要声明它是如何工作的”。
区别如下:
在语法层次,java语言对于抽象类和接口分别给出了不同的定义。
抽象层次不同。抽象类是对类抽象,而接口是对行为的抽象。抽象类是对整个类整体进行抽象,包括属性、行为,但是接口却是对类局部(行为)进行抽象。
跨域不同。抽象类所跨域的是具有相似特点的类,而接口却可以跨域不同的类。
设计层次不同。对于抽象类而言,它是自下而上来设计的,我们要先知道子类才能抽象出父类,而接口则不同,它根本就不需要知道子类的存在,只需要定义一个规则即可。
C++的虚函数和JAVA的interface
Java中的interface实现了函数多态性,并且实现了完全抽象的类。在这里还要提一下引用。因为interface实现了完全抽象的类,在接口中定义的方法完全看不到任何实现,而且也不能有任何的实现,接口中声明的类必须在引用其的类中实现。而多态性的实现正是通过不同引用中的不同的方法实现。
C++中的虚函数也和Java中接口类似,C++中的虚函数同样是将接口和实现分离,从而实现多态性。为了使用多态性,需要在基类中使用virtual来声明虚函数。所以,虚函数是在基类中定义,在其子类中重写实现,也可重写基类的函数。在使用虚函数的的时候,需要定义基类的指针来使用虚函数,否则就失去了虚函数的意义。
其实两者都是为了实现多态性而存在,都需要通过继承来实现,只是Java中称为引用,与C++中的继承也是大同小异。
Java中 向上造型是什么概念是向上转型么 什么情况下用
class A {}
class B {} extend A
B b1 = new B();
A a1 = new B();
b1 = a1;
这被称作向上造型。
java向上造型的意义的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于向上造型有什么意义、java向上造型的意义的信息别忘了在本站进行查找喔。