程序1:
/**
* 功能:演示多态
*/
package com.sec01;
public class Demo5 {
public static void main(String[] args) {
//多态
Cat cat=new Cat();
cat.cry();
Dog dog=new Dog();
dog.cry();
}
}
//动物类Animal
class Animal{
String name;
int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//动物会叫
protected void cry(){
System.out.println("不知道怎么叫");
}
}
class Dog extends Animal{
//狗叫
@Override
public void cry() {
System.out.println("汪汪叫");
}
}
class Cat extends Animal{
//猫叫
public void cry(){
System.out.println("喵喵叫");
}
}
/**
* 功能:演示多态
*/
package com.sec01;
public class Demo5 {
public static void main(String[] args) {
//多态
/*Cat cat=new Cat();
cat.cry();
Dog dog=new Dog();
dog.cry();*/
//an一会是猫
Animal an=new Cat();
an.cry();
//an一会是狗
an=new Dog();
an.cry();
}
}
//动物类Animal
class Animal{
String name;
int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//动物会叫
protected void cry(){
System.out.println("不知道怎么叫");
}
}
class Dog extends Animal{
//狗叫
@Override
public void cry() {
System.out.println("汪汪叫");
}
}
class Cat extends Animal{
//猫叫
public void cry(){
System.out.println("喵喵叫");
}
}
/**
* 功能:演示多态
*/
package com.sec01;
public class Demo5 {
public static void main(String[] args) {
//多态
/*Cat cat=new Cat();
cat.cry();
Dog dog=new Dog();
dog.cry();*/
//an一会是猫
/*Animal an=new Cat();
an.cry();
//an一会是狗
an=new Dog();
an.cry();*/
Master master=new Master();
master.feed(new Dog(), new Bone());
master.feed(new Cat(),new Fish());
}
}
//主人类
class Master{
//给动物喂食物,使用多态,方法就用一个可以了
public void feed(Animal an,Food f){
an.eat();
f.showName();
}
}
//食物类Food
class Food{
String name;
public void showName(){}
}
//鱼
class Fish extends Food{
@Override
public void showName() {
System.out.println("鱼");
}
}
//骨头类
class Bone extends Food{
public void showName() {
System.out.println("骨头");
}
}
//动物类Animal
class Animal{
String name;
int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//动物会叫
protected void cry(){
System.out.println("不知道怎么叫");
}
//动物吃东西
public void eat(){
System.out.println("不知道吃什么");
}
}
class Dog extends Animal{
//狗叫
@Override
public void cry() {
System.out.println("汪汪叫");
}
//狗吃东西
public void eat(){
System.out.println("狗爱吃骨头");
}
}
class Cat extends Animal{
//猫叫
public void cry(){
System.out.println("喵喵叫");
}
//猫吃东西
public void eat(){
System.out.println("猫喜欢吃鱼");
}
}