• 学JAVA第十六 天,JAVA多态


    今天老师讲了多态的使用

    多态是同一个行为具有多个不同表现形式或形态的能力。

    多态的优点: 1. 消除类型之间的耦合关系  2. 可替换性   3. 可扩充性  4. 接口性  5. 灵活性  6. 简化性

    我个人认为   可替换性    可扩充性   灵活性 到是很充分的体现出来了。

    现在就用问题来体现吧 !!!      

     
    1、创建一个动物类
    2、创建一个动物的数组,长度2个
    3、创建一只猫(有抓老鼠方法)
    4、创建一条蛇(有冬眠方法)        就这个问题
    5、分别把它们放在动物的数组中。

      创建一个动物类:

    
    
    package pkg26;
    
    public class Animal{
    	private String name;	
    	
    	public String getName(){
    		return this.name;
    	}	
    	public void setName(String name){
    		this.name = name;
    	}	
    }

    创建一只猫类
    package pkg26;
    
    public class Cat extends Animal{
    		
    	public void methodCat(){
    		System.out.println("我被一只老鼠抓了");
    	}
    	
    }
     

    创建一条蛇类

     

    package pkg26;
    
    public class Snake extends Animal{	
    	@Override//@Override 是帮助自己检查是否正确的复写了父类中已有的方法.
                //告诉读代码的人,这是一个复写的方法
    	public void setName(String name){	//这个方法名一定要跟父类中的方法名setName一样!!!
           super.setName(name+"先生");//这是一个重写的方法,可以比这个方法注释起来,运行一遍和不注释运行比较一下 
        }
          public void methodSnake(){
            System.out.println("我吞了一个大象");
          }
    }

      

    创建一个动物的数组并分别把它们放在动物的数组中,
    但是,这都是要借助测试类才能实现的
    下边就是测试类:
    package pkg26;
    
    
    public class Test{ public static void main(String args[]){ Animal animals[] = new Animal[2]; animals[0] = new Cat(); 
              //如果我要给一只猫一个名字,那么就要这样做
              /*
                animals[0].setName("小白");//让一只猫叫小白
                System.out.println(animals[0].getName());              
              */ animals[1] = new Snake(); for(Animal o:animals){ //o.setName("123");//这的意思是把所有的动物的名字都设为123 System.out.println(o.getName()); } } }
     

    JAVA的多态是很抽象的一个很重要的知识点,所以,要在这里下很多很多功夫!!!

    所以,带着JAVA多态的优点把我上面的代码反复尝试!!!这样才能更好的学习!!!

    还有,昨天,有一个人把我之前写的也看了而且还评论了!!!自己写的东西有人看 真的好开心!!!

      加油!!!

     

     

  • 相关阅读:
    40岁后学习编程是否太晚了?7点技巧让学习变得轻松有趣
    Java 8五大主要功能为开发者提供了哪些便利?
    如何创建Vim Dotfile?
    程序员:我们为什么爱上直播编程?
    10个最好用的HTML/CSS 工具、插件和资料库
    如何选择PHP框架?
    编程语言五花八门,哪种可以让程序员赚到更多钱?
    安卓项目中使用JSON引发的一个小错误 Multiple dex files define Lorg/apache/commons/collections/Buffer
    (转)获取当前应用的版本号和当前android系统的版本号
    Android访问网络,使用HttpURLConnection还是HttpClient?
  • 原文地址:https://www.cnblogs.com/chenxiaojie/p/10719801.html
Copyright © 2020-2023  润新知