「多态java例子」java多态简单例子

博主:adminadmin 2022-11-28 21:12:09 53

今天给各位分享多态java例子的知识,其中也会对java多态简单例子进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java的多态怎么实现?

实现多态的三个条件(前提条件,向上转型、向下转型)

1、继承的存在;(继承是多态的基础,没有继承就没有多态)

2、子类重写父类的方法。(多态下会调用子类重写后的方法)

3、父类引用变量指向子类对象。(涉及子类到父类的类型转换)

向上转型 Student person = new Student()

将一个父类的引用指向一个子类对象,成为向上转型,自动进行类型转换。此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,而不是父类的方法此时通过父类引用变量无法调用子类特有的方法。

向下转型 Student stu = (Student)person;

将一个指向子类对象的引用赋给一个子类的引用,成为向下转型,此时必须进行强制类型转换。向下转型必须转换为父类引用指向的真实子类类型,,否则将出现ClassCastException,不是任意的强制转换

向下转型时可以结合使用instanceof运算符进行强制类型转换,比如出现转换异常---ClassCastException

JAVA中多态是怎么一回事,能不能举个例子,嗷嗷感谢!

java多态其实很简单的....java多态必须满足三个条件:1、继承2、子类重写父类方法3、父类引用调用子类对象接下来用例子一步一步解释分别是什么意思......继承:公司员工 有测试员、开发员和项目经理 他们都有一些共同的属性比如 年龄、性别、家庭地址、工资等。这时就可以将她们抽象出一个类出来 person 包括这些共同的属性。然后测试员、开发员和项目经理去继承这个类person后,就拥有了这些属性了。子类重写父类方法:测试员、开发员和项目经理的工资是不一样的,他们又从继承了工资这个属性,显然不能达到要求。此时就必须重写从父类继承过来的这个方法。父类引用调用子类对象:Person person = new Manager() 代码:pulbic Person {

public void 工资() { System.out.println(3000);

}}

//=========================================

public Manager extends Person { //满足条件1 继承 public void 工资() { //满足条件2 子类重写父类方法 System.out.println(5000);

}

}//=========================================public Demo { public static void main(String[] args) {

Person person = new Manager(); //满足条件3 父类引用调用子类对象

person.工资(); //打印 出5000;

}

}

JAVA多态经典例题

System.out.println("1--" + a1.show(b));

a1是A类引用指向A类对象,不存在多态,一定调用A类方法。A类方法有两个show(D)和show(A),b是B类引用无法转换为D类引用,但可以转换为A类引用,因此调用show(A),输出A and A。

System.out.println("2--" + a1.show(c));

输出A and A,原因同上。

System.out.println("3--" + a1.show(d));

调用show(D),输出A and D。

System.out.println("4--" + a2.show(b));

a2是A类引用指向B类对象,可能存在多态。b是B类引用无法转换为D类引用,但可以转换为A类引用,因此调用show(A),而B类重写了show(A),因此调用的是重写后的show(A),输出B and A。

System.out.println("5--" + a2.show(c));

同上,C类引用无法转换为D类引用,但可以转换为A类引用,因此调用show(A),输出B and A。

System.out.println("6--" + a2.show(d));

调用show(D),show(D)又调用父类即A类的show(D),输出A and D

System.out.println("7--" + b.show(b));

b是B类引用指向B类对象,不存在多态,一定调用B类方法。B类一共有三个方法:重写自A类的show(A)和show(D),以及新定义的show(B)。show(b)调用show(B)方法,输出B and B

System.out.println("8--" + b.show(c));

C类继承自B类,也调用show(B)方法,输出B and B

System.out.println("9--" + b.show(d));

调用show(D),show(D)又调用父类即A类的show(D),输出A and D

java中多态性什么意思?

多态性:顾名思义就是拥有“多种形态”的含义,是指属性或方法在子类中表现为多种形态。

在JAVA中有两种多态是指:运行时多态和编译时多态。多态性是面向对象的核心特征之一,类的多态性提供类中成员设计的灵活性和方法执行的多样性。

多态指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)

实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。

扩展资料:

多态的好处:

1、可替换性(substitutability)多态对已存在代码具有可替换性。例如,多态对圆Circle类工作,对其他任何圆形几何体,如圆环,也同样工作。

2、可扩充性(extensibility)多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。实际上新加子类更容易获得多态功能。

3、接口性(interface-ability)多态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的。

4、灵活性(flexibility)它在应用中体现了灵活多样的操作,提高了使用效率。

5、简化性(simplicity)多态简化对应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。

参考资料:百度百科-多态

java中的多态性

先纠正一下楼主的说法,函数重载和函数重写是不一样的,重载的函数:函数名相同,参数个数不同,返回类型可以不同。重写是函数名、参数类型和参数个数都完全相同,返回类型也要相同,且重写的方法抛出的异常范围不能大于基类!

至于多态,以楼主的例子为例,我写了两个简单的类:

class Animal

{

public void print(){"I am amimal";}--输出函数就不写了

}

class Cat extends Animal

{

public void print{"I am cat";}

pulbic void print(String name){"my name is"+name}

}

以上的Cat继承了Animal,并重写和重载了print方法,以下是方法调用:

public void fn(Animal an) //这里假设传入的参数都是Cat对像

{

an.print();

}

输出结果是:I am cat

可如果是这样调用:

public void fn(Animal an)

{

an.print("mimi");

}

就会报语法错误!为什么呢!因为指向这个Cat的引用是Animal类型的,这个引用就看不到Cat重载的函数,所以会报语法错误,就像老板给你张单子去买东西,你只能买单子上买的东西,单子以外的东西你不能买!这里的引用用像这张单子!对于重写,由于Cat也是Animal,所以这张单子(引用)上面当然写找得到print()方法,但要主意,虽然引用是Animal类型的,但引用的实际对象是Cat类型,如果Cat重写了该方法,那么基类的方法就被覆盖了,调用到的就是子类重写后的方法!就像你单子上写有要买一台iphone,但里到商店后发现没用美国原版的卖了,但有港版的,于是你就买港版的咯!如果用大陆行的,也可以选择买大陆行的,或者联通版的,想当于多个继承了基类的子类表现出的不同特征!这就是多态了,不知道楼主理解了没!!!求 分哈!

多态java例子的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java多态简单例子、多态java例子的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-28,除非注明,否则均为首码项目网原创文章,转载请注明出处。