面向对象(11)多态

 

 

 

 

 

 

 

 

 

public abstract class Animal {
 
 public abstract void  eat();
 
}

public class Bird extends Animal  {
      
 public  void dog(){
  System.out.println("看家");
 }

 public void eat() {
  System.out.println("骨头");
  
 } 
}

public void  cat (){
    System.out.println("抓老鼠");
 }


 public void eat() {
  System.out.println("吃鱼");
  
 }

public class test {

 public static void main(String[] args) {
 
  function(new Bird());  
  }
  public static  void function(Bird c ){
   c.eat();
  }

 

public  class BaseClass {
  public int book = 6;
 
  public void base(){
   System.out.println("父类方法");
  }
 
 public void test(){
  System.out.println("父类被覆盖的方法");
 }

 

 

public class SubClass extends BaseClass  {

 public String book = "JAVA基础";
 public void test() {
  System.out.println("子类的覆盖父类方法");
  
 }
 


 

public class test {
 public static void main(String[] args) {
 
  //下面编译时类型和运行时类型完全一样,因此不存在多态
  BaseClass bc = new BaseClass();
  System.out.println(bc.book);//输出6
  //下面调用2次执行baseclass的方法
  bc.base();
  bc.test();
  //下面编译时类型和运行时类型不一样,因此多态发生
  BaseClass ploymphicbc = new SubClass();
  //输出6表明的父类的属性
  System.out.println(ploymphicbc.book); //6
  //下面调用将执行从父类继承到BaseClass方法
  ploymphicbc.base();//父类方法
  //下面调用执行当前类的test方法
  ploymphicbc.test(); //打印父类被覆盖的方法
  
 //  ploymphicbc.sub();  //  BaseClass中没有sub()方法;
 
}
}   
    public void sub() {
     System.out.println("子类的普通方法");
    }
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值