A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 廉伟 中级黑马   /  2012-10-2 12:01  /  1053 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
多态  某一类事物的多种存在形态。
    同一种行为表现出不同的状态

我们以前开发中,使用的对象是哪个类的就用这个类来声明
狗 dog=new 狗
狼 wolf=new 狼

动物 dw=new 狼;

动物 dw=new 狗;
动物 dw=new 猫;

  多态可以存在的前提:  
   
   子类与父类  继承   
    父类 引用 = new 子类    父类引用指向子类对象
   接口与实现类  实现
    接口  引用= new 实现类   接口回调
   
   需要进行重写   
  
  
  多态的作用与好处
   提高了代码复用性与扩展性,增加了后期代码的可维护性
   前期可能不知道具体的子类(实现类)是怎样实现的,但是我们可以在父类,接口中
   定义这些行为,让子类与实现类去实现。使用时使用的是父类的引用或者接口的引用,
   这样它的扩展性与可维护性增强
  存在的弊端
   存在问题:在子类或实现类中独有的行为不可能通过父类引用或者接口的引用去调用。

*/
class  Demo7
{
public static void main(String[] args)
{
  /*
  Cat cat=new Cat();
  cat.eat();
  Dog dog=new Dog();
  dog.eat();

  Wolf wolf=new Wolf();
  wolf.eat();
  */
  Animal a=new Cat();
  a.eat();
  a.sleep();
}
}
abstract class Animal
{
abstract void eat();
}
class Dog extends Animal
{
void eat(){
  System.out.println("狗吃骨头");
}

}
class Cat extends Animal
{
void eat(){
  System.out.println("猫吃鱼");
}
//独有的行为
void sleep(){
  
  System.out.println("猫睡觉");
}
}
class Wolf extends Animal
{
void eat(){
  System.out.println("狼吃肉");
}
}

/*
interface 业务
{
public void operation();
}

class A implements 业务
{
public void operation(){
  
}
}

//业务进行扩展
class B implements 业务
{
public void operation(){

}
}

class Tools
{
public static void show(业务 yw){
  
  yw.operation();
}
}

main(){

B b=new B();
//A a=new A();
Tools.show(b);
}
*/

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马