java向上造型的优点_向上造型_java向上造型的意义_彩妆阁

1、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++中的继承也是大同小异。

2、java向上造型的意义?

向上转型是子类对象当成父类对象来使用,也就可以这样理解,父类引用指向子类对象。

那么比如有一个方法m,它传的参数是父类的类型,m(father

f),执行的父类中已有的某个方法

而你实际传的是它的子类

son,如果子类中有重写父类的方法,那么java机制就会自动的执行子类的那个方法。

想象下,如果你不用父类对象引用,那么你实现每个动物的m方法的时候都要去写一次,而用了这个,java自动判断实际上是哪个对象就用哪个的方法。

而且你如果添加别的子类,也只需要重写出这个类和重写的父类方法就可以了,否则你还要去改m方法。

也就是说,向上转型体现了面向对象的特点,也增加了程序的扩展性。

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

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

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

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

典型应用:接口。

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

4、c++向上造型的问题: A(基类) B(子类) b 在写向上造型时为什么这样写: A* a=&b;

向上转型是指基类引用指向派生类对象。A* a=&b这就是典型的向上转型。

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、java向上造型

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

7、请求大神解释一下java中向上造型有什么作用

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

8、java向上造型有何意义

同一个事件发生在不同的对象上会产生不同的结果。

接口开发。

9、Java中 向上造型是什么概念是向上转型么 什么情况下用

class A {}

class B {} extend A

B b1 = new B();

A a1 = new B();

b1 = a1;

这被称作向上造型。

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

多态服务的你不觉得传参的灵活性变好了吗,你可以参数指定父类对象 传子类对象进去不是。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值