「java多态练习」java多态实现是

博主:adminadmin 2023-01-25 00:51:08 446

本篇文章给大家谈谈java多态练习,以及java多态实现是对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

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多态性的编程题目

public class People {

private String name;

private Integer age;

private String phone;

public String getMessage() {

return "People: 姓名:"+name+",年龄:"+age+",电话:"+phone;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Integer getAge() {

return age;

}

public void setAge(Integer age) {

this.age = age;

}

public String getPhone() {

return phone;

}

public void setPhone(String phone) {

this.phone = phone;

}

}

public class Student extends People{

private Integer id;

public String getMessage(Integer id) {

return "Student: 姓名:"+super.getName()+",年龄:"+super.getAge()+",电话:"+super.getPhone()+",学号:"+id;

}

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

}

public class S {

public static void main(String[] args) {

Student student = new Student();

student.setId(13);

student.setName("李三");

student.setAge(18);

student.setPhone("123-4567-8901");

System.out.println(student.getMessage(student.getId()));

}

}

JAVA多态性

亲,f.son2()方法调用不对呀!!

f是Father类的实例,它没有son2()方法,你是想用练习多态性,但我告诉你,你对多态性的理解不对,我给你讲一下,你认真看一下,就明白了.

你这个没有体现出来多态性,原因很简单,因为多态性有3个必备条件:

1)要有继承 //这个是对的,你的Son1 extends Father!

2)要有重写 // 你注意一下:你的son2()方法和 Father类一点关系没有,因为它是子类新添的方法!!

3)要父类引用指向子类对象 //这个你也对,就是Father f=new Son1();

你的例子没有符合弟2个条件。具体到你的例子中:你的Son2类中的

public String son2(){

return "son2";

}

方法不是重写Father类中的。而是新生的。明白?只有子类方法重写父类方法时,才可以考虑是不是符合动态绑定原则(多态性)。

我给你改一下,你试试吧:

在父类中添加方法:

public String person(){

return " I'm father!!";

}

同样在子类Son1中重写该方法:

public String person(){

return" I'm son!!";

}

之后你再在main方法中调用:

Father f=new Son1();

System.out.println(f.person());

这样一定打印出来了:I'm son!!,而不是I'm faher!!

这样的才叫做动态绑定!!不知道我说明白没有啊?

java继承多态的练习题

Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。

java多态存在的三个必要条件:

1.需要有继承关系的存在

2.需要有方法的重写

3.需要有父类的引用指向子类对象

希望对你有帮助。

第一题应该选D,第二题选C,D。

第一题属于多态,methodB()方法属于子类,父类没有重写子类的方法

第二题属于继承,子类可以继承父类的方法

Java类的多态练习

public class Exam

{

public static void main(String[] args)

{

for(Shape s : new Shape[] {new Rectangle(8,6),new Circle(10)})

{

System.out.println(s.getDescription());

System.out.println(String.format("面积:%.1f",s.getArea()));

}

}

}

abstract class Shape

{

abstract String getDescription();

abstract double getArea();

}

class Rectangle extends Shape

{

Rectangle(double l,double w)

{

length=l;

width=w;

}

public String getDescription()

{

return String.format("长为%.1f,宽为%.1f的长方形!",length,width);

}

public double getArea()

{

return length*width;

}

private double length,width;

}

class Circle extends Shape

{

Circle(double r)

{

radius=r;

}

public String getDescription()

{

return String.format("半径为%.1f的圆!",radius);

}

public double getArea()

{

return Math.PI*radius*radius;

}

private double radius;

}

关于java多态练习和java多态实现是的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。