本文目录一览:
java实验题目,关于多态,接口
interface EqualDiagonal {
double getDiagonal();
}
class Rectangle1 implements EqualDiagonal {
private double a;
private double b;
public Rectangle1(double d,double e){
this.a=d;
this.b=e;
}
public Rectangle1(){
}
public double getDiagonal() {
return Math.sqrt(a * a + b * b);
}
}
class Square extends Rectangle1 implements EqualDiagonal {
private double a;
public Square(int x){
this.a=x;
}
public double getDiagonal() {
return Math.sqrt((2.0) * a * a);
}
}
public class Hypotenuse {
public static void main(String[] args) {
Rectangle1 c = new Rectangle1(5.0,6.0);
Square b = new Square(5);
System.out.println("长方形的斜边长是:" + c.getDiagonal());
System.out.println("正方形的斜边长是:" + b.getDiagonal());
}
}
Java关于继承、多态(接口和包)的编程题
package animal.mammal;
// 狗类
public class Dog extends Mammal{
void speak(){
System.out.println("Woof!");
}
void yaoweiba(){
System.out.println("Tail wagging...");
}
void qitaoshiwu(){
System.out.println("begging for food...");
}
}
// 同理写猫,马,猪,其中都必须有方法 void speak() 输出各不相同,其他方法自定义
public class Cat extends Mammal{
}
public class Horse extends Mammal{
}
public class Pig extends Mammal{
}
// 另外是宠物猫,宠物狗的
package animal.mammal.pet;
public class PetCat extends Cat{
doucle price = 40.00;
String ownername = peter;
void Price(){
System.out.println("PetCat price:" + this.price);
}
void Owner(){
System.out.println("this's " + this.ownername +" petCat");
}
}
// 同理写宠物狗的,如果需要 get/set 则为 price,ownername 加上该方法
public class PetDog extends Dog{
}
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题,主要是实现接口
sum += (CalcArea)shapes[i].getArea();
错误有两个
1、 转型应该是sum += ((CalcArea)shapes[i]).getArea();
2、getArea()这个方法死没有定义的 因为你的接口中只有getArea(double r)和getArea(double length, double width)