public interface animal{
public void shout();
}
上面是一般的写法,可以自定义一个类实现这个接口,然后重写接口里的方法例如:
public class cow implements animal{
@override
public void shout(){
Systemoutprintln("哞哞~"):
}
}
不知道你是不是这个意思~
父类:
public class Bird{
public void sound(){Systemoutprintln("I'm a bird!");}
public void fly(){Systemoutprintln("I can fly!");}
public void body(){Systemoutprintln("I have two wings and two legs!");}
}
麻雀:
public class Sparrow extends Bird{
int age;
int weight;
public void sound(){Systemoutprintln(I'm a sparrow!);}
public void printAge(){Systemoutprintln("My age is "+age);}
public void printWeight(){Systemoutprintln("My weight is "+weight);}
public void setAge(int age){thisage=age;}
public void setWeight(int wight){thisweight=weight;}
}
鸵鸟:
public class Ostrich extends Bird{
int speed;
int height;
public void sound(){Systemoutprintln(I'm a ostrich!);}
public void fly(){Syttemoutprintln("I can't fly!");}
public void printSpeed(){Systemoutprintln("My speed is "+speed);}
public void printHeight(){Systemoutprintln("My height is "+weight);}
public void setSpeed(int speed){thisspeed=speed;}
public void setHeight(int hight){thisheight=height;}
}
鹰 就留给LZ自己练习了~~
至于数组的话,我认为是在测试的时候用的,如下:
public static void main(String[] arg0){
Bird[] birds=new Bird[10];
for(int i=0;i<10;i++){
//这里随机生成对象,对于用户来说不知道birds数组中到底是什么对象
int temp = new javautilRandom()nextInt(4);
switch(temp){
case 0: birds[i]=new Bird();break;
case 1: birds[i]=new Sparrow();break;
case 2: birds[i]=new Ostrich();break;
//case 3: 这里楼主自己生成鹰的对象
}
}
//生成对象以后,我们如何得知数组中到底是什么动物呢?
//这就需要用到继承的特性了
//下面就来打印看看,我们到底生成了什么东西
for(Bird bird : birds){
//这里根据动物的叫声,就可以得知他到底是什么动物了,当然我们在生成的时候也将父类也生成了,所以也会有鸟的叫声。
birdsound();
//如果要体现动物间不同的特性就这样,并且以此类推
if(bird instanceof Sparrow){((Sparrow)bird)printAge();}
if(bird instanceof Ostrich){((Ostrich)bird)printSpeed();}
//
}
}
整个程序体现了子类与父类的多态性,声明的时候用父类型声明,生成对象的时候new的是具体的动物,那么在调用方法的时候,会根据具体声明的对象去调用相应的方法,也就是上面的sound方法,调用之后显然是各自的叫声。
public class Animal {
private String type="";
public Animal(){
type="tiger";
}
public Animal(String type){
thistype = type;
}
public String toString(){
return type;
}
public void sound(){
Systemoutprintln(type+"发出了叫声");
}
public static void main(String[] args) {
Animal a1 = new Animal();//无参的
Systemoutprintln(a1);
a1sound();
Animal a2 = new Animal("panda");//无参的
Systemoutprintln(a2);
a2sound();
}
}
LZ咋连分都不给啊,呵呵,好了可以运行了
class Animal {
public void sound(){}
}
class Dog extends Animal{
public void sound(){
Systemoutprint("汪汪");
}
}
class Cat extends Animal{
public void sound(){
Systemoutprint("喵喵");
}
}
public class Test{
public static void main(String[] args) {
Animal c = new Cat();
Animal d = new Dog();
Systemoutprint("tom");
csound();
Systemoutprint("旺财");
dsound();
}
}
abstract class DongWu{
abstract void animal();
}
class Dog extends DongWu{
void animal(){
Systemoutprintln("旺旺");
}
}
public class Util{
public static void main(String[] args){
Dog d = new Dog();
danimal();
}
}
以上就是关于定义一个接口animal,内有描述动物叫的方法shout 用JAVA语言全部的内容,包括:定义一个接口animal,内有描述动物叫的方法shout 用JAVA语言、写一个java程序,主要是要运用数组,还要体现父类子类间的继承关系。、JAVA编写一个Animal类等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)