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
public class Monkey{
public static void main(String[] args)
{
int sum=0,remain=1
//每天吃剩的桃子加一个正好是前一天桃子的一半,每天桃子的总数就是前一天剩下桃子的数量
for(int day=9day>=1day--)
{
sum=(remain+1)*2
remain=sum
System.out.println("第"+day+"天还剩"+remain+"个桃子")
}
System.out.println(sum)
}
}
按照题目要求编写的用javaBean规范设计的学生类Student的Java程序如下
需要创建user.java.test包,把Student.java文件和Test.java文件放入包中,编译Student.java文件并且编译运行Test.java文件得到运行结果
Student.java文件代码如下
package user.java.test
import java.io.Serializable
public class Student implements Serializable{
private static final long serialVersionUID = 1L
private String no
private String name
private double score
public Student(){}
public Student(String no,String name,double score){
this.no=no
this.name=name
this.score=score
}
public String getNo(){ return no}
public void setNo(String no){ this.no=no}
public String getName(){ return name}
public void setName(String name){ this.name=name}
public double getScore(){ return score}
public void setScore(double score){ this.score=score}
public String toString(){
return "学号:"+no+",姓名:"+name+",成绩:"+score
}
public static double getAvg(Student[] sArray){
double sum=0,avg
for(int i=0i<sArray.lengthi++){
sum=sum+sArray[i].getScore()
}
avg=sum/sArray.length
return avg
}
}
Test.java文件代码如下
package user.java.test
public class Test{
public static void main(String[] args){
Student[] sArray=new Student[5]
sArray[0]=new Student("001","张三",89.5)
sArray[1]=new Student("002","李四",82.5)
sArray[2]=new Student("003","王五",93)
sArray[3]=new Student("004","赵六",73.5)
sArray[4]=new Student("005","孙七",66)
System.out.println("这些学生的平均分:"+Student.getAvg(sArray))
for(int i=0i<sArray.lengthi++){
System.out.println(sArray[i].toString())
}
}
}