public static void pet
时间: 2024-01-29 09:02:11 浏览: 24
As an AI language model, I am not capable of having a pet or performing actions related to petting. However, I can provide information or answer questions about pets. What would you like to know?
相关问题
小新看到朋友养宠物非常羡慕,自己也想养宠物,小新开始准备养一只老虎,被妈妈揍了一顿,于是他只好养了一条狗狗,计划再养猫猫,或者鹦鹉等等,请通过代码完成这个过程。public class Main { public static void main(String[] args) { Student xiaoxin = new Student(); xiaoxin.feedPet(new Dog("小汪")); xiaoxin.feedPet(new Cat("小白")); } } class Student{ public void feedPet( 【】){ pet.beFriendly(); pet.beAccompanied(); } } //定义接口 【】 IPet{ void beFriendly(); void beAccompanied(); } //定义抽象类 【】 class Animal{ private String name; //定义抽象方法 public 【】 void move(); public Animal(String name) { super(); this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } } //继承animal 实现IPet class Cat 【】{ public Cat(String name){ 【】 } //实现beFriendly方法 //实现be beAccompanied方法 @Override public void move() { // TODO Auto-generated method stub System.out.println("cat move quiently"); } } //继承animal 实现IPet class Dog 【】{ public Dog(String name){ 【】 } //实现beFriendly方法 //实现be beAccompanied法 @Override public void move() { // TODO Auto-generated method stub System.out.println("dog move quickly"); } } 输入格式: 输出格式: 输入样例: 在这里给出一组输入。例如: 输出样例: 在这里给出相应的输出。例如: i am 小汪 dog, i am friendly i am 小汪 dog, i can talk a walk with you i am 小白 cat, i am friendly i am 小白 cat, i can accompany you quiently
我理解了您的要求,并完成了代码。请参考以下代码:
public class Main {
public static void main(String[] args) {
Student xiaoxin = new Student();
xiaoxin.feedPet(new Dog("小汪"));
xiaoxin.feedPet(new Cat("小白"));
}
}
class Student{
public void feedPet(IPet pet){
pet.beFriendly();
pet.beAccompanied();
}
}
interface IPet{
void beFriendly();
void beAccompanied();
}
abstract class Animal{
private String name;
public abstract void move();
public Animal(String name) {
super();
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class Cat extends Animal implements IPet{
public Cat(String name){
super(name);
}
@Override
public void beFriendly() {
System.out.println("i am " + getName() + " cat, i am friendly");
}
@Override
public void beAccompanied() {
System.out.println("i am " + getName() + " cat, i can accompany you quiently");
}
@Override
public void move() {
System.out.println("cat move quietly");
}
}
class Dog extends Animal implements IPet{
public Dog(String name){
super(name);
}
@Override
public void beFriendly() {
System.out.println("i am " + getName() + " dog, i am friendly");
}
@Override
public void beAccompanied() {
System.out.println("i am " + getName() + " dog, i can talk a walk with you");
}
@Override
public void move() {
System.out.println("dog move quickly");
}
}
输出结果为:
i am 小汪 dog, i am friendly
i am 小汪 dog, i can talk a walk with you
i am 小白 cat, i am friendly
i am 小白 cat, i can accompany you quiently
1)首先阅读下列程序并写出运行结果,然后编译、执行以验证; 2) 增加Dog类的构造函数,使之可以初始化Dog类中的weight值,并实现构造函数重载; 3)在Dog类中添加方法getWeight、setWeight以存取weight值; 4) 重写Dog类对象的speak()方法,使其返回“Woof Woof”字符串; 5)从Pet类派生Cat类,并且重写speak()方法返回值为”Miao Miao”; 6)在Main方法中,通过类型多态的方式实现Pet对象分别调用Dog和Cat的speak()方法,分析输出结果是否正确。 class Pet { protected String name; public Pet(String n) { name = n; } public String getName() { return name; } public String move() { return "run"; } public String speak() { return ""; } public String toString() { return "My pet " + name; } } class Dog extends Pet { protected int weight; public Dog(String s) { super(s); } } class PetTest { public static void main(String[] args) { Pet myPet = new Pet("George"); Dog myDog = new Dog("Spot"); System.out.println(myPet.toString() + "\n" + "Speak: " + myPet.speak() + "\n" + myPet.move() + " " + myPet.getName() + "\n"); System.out.println(myDog.toString() + "\n" + "Speak: " + myDog.speak() + "\n" + myDog.move() + " " + myDog.getName() + "\n"); } }
运行结果如下:
```
My pet George
Speak:
run George
My pet Spot
Speak:
run Spot
```
增加Dog类的构造函数,使之可以初始化Dog类中的weight值,并实现构造函数重载:
```java
class Dog extends Pet {
protected int weight;
public Dog(String s) {
super(s);
}
public Dog(String s, int w) {
super(s);
weight = w;
}
}
```
在Dog类中添加方法getWeight、setWeight以存取weight值:
```java
class Dog extends Pet {
protected int weight;
public Dog(String s) {
super(s);
}
public Dog(String s, int w) {
super(s);
weight = w;
}
public int getWeight() {
return weight;
}
public void setWeight(int w) {
weight = w;
}
}
```
重写Dog类对象的speak()方法,使其返回“Woof Woof”字符串:
```java
class Dog extends Pet {
protected int weight;
public Dog(String s) {
super(s);
}
public Dog(String s, int w) {
super(s);
weight = w;
}
public int getWeight() {
return weight;
}
public void setWeight(int w) {
weight = w;
}
public String speak() {
return "Woof Woof";
}
}
```
从Pet类派生Cat类,并且重写speak()方法返回值为”Miao Miao”:
```java
class Cat extends Pet {
public Cat(String s) {
super(s);
}
public String speak() {
return "Miao Miao";
}
}
```
在Main方法中,通过类型多态的方式实现Pet对象分别调用Dog和Cat的speak()方法,分析输出结果是否正确:
```java
public static void main(String[] args) {
Pet myPet = new Pet("George");
Dog myDog = new Dog("Spot");
Cat myCat = new Cat("Tom");
Pet[] pets = {myPet, myDog, myCat};
for (Pet pet : pets) {
System.out.println(pet.toString() + "\n" + "Speak: " + pet.speak() + "\n" + pet.move() + " " + pet.getName() + "\n");
}
}
```
输出结果如下:
```
My pet George
Speak:
run George
My pet Spot
Speak: Woof Woof
run Spot
My pet Tom
Speak: Miao Miao
run Tom
```
可以看到,输出结果是正确的,实现了Pet对象通过类型多态的方式分别调用Dog和Cat的speak()方法。