java向上造型的优点_向上造型的意义

1、java向上造型强制转换的好处

这还用说,方便了类型之间转换。这样扩展性不好了吗。数据类型不也是这样的吗?

望采纳,谢谢

2、java向上造型的意义?举例子说明!谢谢!

?

3、java里面的向上造型是什么?_?抽象类和接口有什么关系?c++里面的虚函数是java里面的接口

向上造型一个泛型对象的引用

例如,假设我们有很多箱子,每个箱子里都装有不同的水果,我们需要找到一种方法能够通用的处理任何一箱水果。更通俗的说法,A是B的子类型,我们需要找到一种方法能够将C类型的实例赋给一个C类型的声明。

为了完成这种操作,我们需要使用带有通配符的扩展声明,就像下面的例子里那样:

List apples = new ArrayList();

List extends Fruit> fruits = apples;

“? extends”是泛型类型的子类型相关性成为现实:Apple是Fruit的子类型,List 是 List extends Fruit> 的子类型。

JAVA中抽象类与接口是java语言中对抽象概念进行定义的两种机制。

我们都知道在面向对象的领域一切都是对象,同时所有的对象都是通过类来描述的,但是并不是所有的类都是来描述对象的。如果一个类没有足够的信息来描述一个具体的对象,而需要其他具体的类来支撑它,那么这样的类我们称它为抽象类。比如new Animal(),我们都知道这个是产生一个动物Animal对象,但是这个Animal具体长成什么样子我们并不知道,它没有一个具体动物的概念,所以他就是一个抽象类,需要一个具体的动物,如狗、猫来对它进行特定的描述,我们才知道它长成啥样。

接口是一种比抽象类更加抽象的“类”。这里给“类”加引号是我找不到更好的词来表示,但是我们要明确一点就是,接口本身就不是类。 接口是用来建立类与类之间的协议,它所提供的只是一种形式,而没有具体的实现。同时实现该接口的实现类必须要实现该接口的所有方法,通过使用implements关键字,他表示该类在遵循某个或某组特定的接口,同时也表示着“interface只是它的外貌,但是现在需要声明它是如何工作的”。

区别如下:

在语法层次,java语言对于抽象类和接口分别给出了不同的定义。

抽象层次不同。抽象类是对类抽象,而接口是对行为的抽象。抽象类是对整个类整体进行抽象,包括属性、行为,但是接口却是对类局部(行为)进行抽象。

跨域不同。抽象类所跨域的是具有相似特点的类,而接口却可以跨域不同的类。

设计层次不同。对于抽象类而言,它是自下而上来设计的,我们要先知道子类才能抽象出父类,而接口则不同,它根本就不需要知道子类的存在,只需要定义一个规则即可。

C++的虚函数和JAVA的interface

Java中的interface实现了函数多态性,并且实现了完全抽象的类。在这里还要提一下引用。因为interface实现了完全抽象的类,在接口中定义的方法完全看不到任何实现,而且也不能有任何的实现,接口中声明的类必须在引用其的类中实现。而多态性的实现正是通过不同引用中的不同的方法实现。

C++中的虚函数也和Java中接口类似,C++中的虚函数同样是将接口和实现分离,从而实现多态性。为了使用多态性,需要在基类中使用virtual来声明虚函数。所以,虚函数是在基类中定义,在其子类中重写实现,也可重写基类的函数。在使用虚函数的的时候,需要定义基类的指针来使用虚函数,否则就失去了虚函数的意义。

其实两者都是为了实现多态性而存在,都需要通过继承来实现,只是Java中称为引用,与C++中的继承也是大同小异。

4、java向上造型有什么作用?为什么要造型,有什么效果????

向上造型:父类的引来用指向源子类的对象。

向上造型可以大大提高程序的可扩展性。利于代码维护。

面向对象的三大特性:封装;继承;多态。向上造型可以看做多态的一种体现。即允许一种类型有不同的实现(可以理解为事物存在的多种体现形态)。

典型应用:接口。

没有什么效果,只是是代码精简而已

5、向上造型,强制转型,instance of是什么意思?

instanceof来检测某个对象是不是另一个对象的版实例

比如:权function A(){};

function B(){};

var a = new A();

var b = new B();

console.log(a instanceof A);//true

console.log(b instanceof A);//false

6、向上造型 父类声明子类 是不是无法调用子类的方法 智只能用父类的 这有什么意义

方法之所以能被子类覆盖就是因为有extends这个关键子 你已经继承了Person 所以他的一些属性和方法就是你的了 然而你又写了 void show()

void show() 本身就是父类传递给你的 也就是说你什么都不写 也照样可以点出这个方法 你写了这个之后 就是对方法的重写 (不知道你这一点理解不理解) 然而你其他的问题我没明白你到底是想问什么 你到底是想问子父类中构造方法的始化顺序还是什么 你能跟我说说吗

7、java向上造型

正确的有 P0=P1 P0=P2 P4=P2 只要创建对象没错 就直接看引用,谁是爸爸谁在左边等着儿子赋值就行了。

8、java程序中继承和向上造型有什么不同

继承可以拓展类的功能,而向上造型是不能使用在子类中拓展的这些属性和方法的,只能使用从父类继承来的方法和属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值