⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testjava.java

📁 用来学习java 的文档
💻 JAVA
字号:
 /***
  * 多态思想
  * 首先知道三要素
  * 1,继承 2,重写 3,父类对象指向子类对象
  * 
  * 理解多态的优势。
  * 我们要设计一些动物前,先设计动物的基本类
  * 如Animal.我们设计好他的名字。和统一的叫声这个方法函数。
  * 其次,我们开始单独设计每一种动物的特征
  * 先设计Cat猫,他继承了动物的特征后,我们对猫的叫声重写一下。
  * 注意重写 必须和父类方法一样。
  * 同样,我们又写了狗Dog,bird鸟这两个方法,同时重写了他们的叫声。
  * 
  * 这个时候,我们设计一个小女孩的类Lady。 我们开始设计她的名字,和她将使用的一个
  * 对象 动物。
  * 我们定义了她的构造方法,里面的参数有名字,和定义的动物对象。
  * 同时,我们对他定义了一个方法,并且实现了调用该方法就可实现调用动物的这个叫声。
  * 
  * 我们在主函数里面建立了 Cat Dog 和Lady等实现类。
  * 当我们调用Lady中调用哪个 动物类的时候,程序会自动找到与其对应的动物的实现方法。
  * 这个就叫 多态。
  * @author Administrator
  *abstract 抽象
  *抽象方法必须定义抽象类 
  *抽象方法只要定义不要实现
  *抽象类不能被实力化
  *子类抽象类必须被继承,子类抽象方法必须被重写
  */
abstract class Animal {//定义抽象类
  private String name;
  Animal(String name) {this.name = name;}
  /*
  public void enjoy(){
    System.out.println("叫声......");
  }
  */
  public abstract void enjoy();//定义抽象方法,也叫纯虚函数
}

 class Cat extends Animal {
  private String eyesColor;
  Cat(String n,String c) 
  {super(n); eyesColor = c;}
  
  public void enjoy() {
    System.out.println("猫叫声......");
  }
  
  //public abstract void enjoy();
}

class Dog extends Animal {
  private String furColor;
  Dog(String n,String c) {super(n); furColor = c;}
 
  public void enjoy() {
    System.out.println("狗叫声......");
  }
}

class Bird extends Animal {
	 Bird() {
	 	 super("bird");
	 }
	 public void enjoy() {
    System.out.println("鸟叫声......");
  }
}

class Lady {
    private String name;
    private Animal pet;//定义了动物的类 对象
    Lady(String name,Animal pet) {//由于pet是动物的对象。而Cat Dog等也是从动物继承而来的
        //所以,调用哪种动物,pet就自动传到哪个动物的类上
    	this.name = name; this.pet = pet;
    }
    public void myPetEnjoy(){pet.enjoy();}//自动识别方法的过程就叫多态
}

public class Testjava {
    public static void main(String args[]){
        Cat c = new Cat("catname","blue");
        Dog d = new Dog("dogname","black");
        Bird b = new Bird();
        Lady l1 = new Lady("l1",c);
        Lady l2 = new Lady("l2",d);
        Lady l3 = new Lady("l3",b);
        l1.myPetEnjoy();
        l2.myPetEnjoy();
        l3.myPetEnjoy();
        //多态的好处在于,我们要增加不同的类或动物类型,那么,无需改动动物的大类。
        //只要增加要的类,在主函数中调用就可以了。
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -