java多态特性

来源:互联网 发布:c语言点滴pdf百度云 编辑:程序博客网 时间:2024/06/04 19:16

所谓多态,就是指一个引用(类型)在不同情况下的多种状态。

说白了,就是通过指向父类的指针,来调用不同子类中实现的方法。

案列1:通过继承来实现多态

public class Demo1 {
 public static void main(String []args)
 {
  Animal an=new Cat();
  an.cry();--调用子类Cat的cry方法
  an=new Dog();
  an.cry();--调用子类Dog的cry方法
 }
}

class Animal
{
 public String name;
 public 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;
 }
 public void cry()
 {
  System.out.println("不知道怎么叫");
 }
 
}

class Cat extends Animal
{
 public void cry()
 {
  System.out.println("猫猫叫");
 }
}

class Dog extends Animal
{
 public void cry()
 {
  System.out.println("旺旺叫");
 }
}

案例2:通过实现接口来实现多态

public class Demo1 {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Computer c=new Computer();
  Phone p=new Phone();
  Camera ca=new Camera();
  c.useUsb(p);
  c.useUsb(ca);
 }

}

interface iusb
{
 void start();
 void stop();
}

class Phone implements iusb
{
 public void start()
 {
  System.out.println("手机开始工作");
 }
 
 public void stop()
 {
  System.out.println("手机停止工作");
 }
}

class Camera implements iusb
{
 public void start()
 {
  System.out.println("相机开始工作");
 }
 
 public void stop()
 {
  System.out.println("相机停止工作");
 } 
}

class Computer
{
 public void useUsb(iusb usb)
 {
  usb.start();
  usb.stop();
 }
}

 

0 0