zoukankan      html  css  js  c++  java
  • Java语言的三大特性

    我们都知道Java中有三大特性,那便是是继承,封装和多态。

    封装,封装就是使用权限修饰符来实现对属性的隐藏,同时提供一些共有的get/set方法来对数据进行访问。我们可以在get或set方法内部添加一些逻辑控制语句。比方说在设置年龄的时候,我就限制传入的age不能大于100。代码实现可以这样写。 publicvoidsetAge(intage){if(age>100){this.age=120;}}publicintgetAge(){if(this.gender=="女"){System.out.println("女孩子的年龄是你能看的?");return-1;}returnthis.age;} 这只是一个简单的实例,实际情况是可以优化的。

    继承,我们通过extends关键字来标识继承的父类。而且继承是可以传递的,A继承B,B继承C,那么C也是A的父类。父类也叫超类,子类也叫基类。Object是所有类的超类。在子类中调用和父类同名的方法时,执行的是子类的方法,而可以显示的使用super来调用父类的方法。 继承的优点显而易见,可以增加代码的复用性,但是我们不能为了继承而去继承,还要注意继承和组合的概念,继承是“isa”的概念,比方说catisaanimal.而组合是“hasa”的概念,比方说ourbodyhasaleg.以上两句话可以设计出如下的结构。 classAnimal{sleep(){System.print.out("动物睡觉");}}//表示猫是动物classCatextendsAnimal{sleep(){System.print.out("猫睡觉");}}classLeg{}//表示身体里有腿classBody{Legleg=newLeg();} 。

    多态,顾名思义,多态就是多种状态。就像是同样的早晨有时候你是精神满满而有时候你是萎靡不振一样,我们在调用同一个方法的时候,很可能执行的情况也不一样。这就是Java中说的多态。想要多态,先要有继承。还有一种多态的形式,我们称之为“虚拟方法调用”又叫向上转型,说的简单一点就是父类的引用指向了子类对象。父类Animal的a指向了Cat实体。 Animala=newCat();a.sleep()//猫睡觉 需要注意的是在使用虚拟方法调用的时候不能调用父类独有的方法,这会在运行时报错,在编译时没事,编译的时候只编译等号左边。但是在运行的会看具体的对象,在子类中找不到相应的方法自然会报错。

  • 相关阅读:
    一站式示例代码库登陆微软中国首页
    一站式示例代码库 中文版 2010年10月更新
    微软一站式示例代码库20101010 新增代码示例简介
    一站式示例代码库 中文版 2010年9月更新
    微软全新示例代码请求服务正式上线
    Merge Sort 归并排序
    递归的Fibonacci在数羊
    VS2010 常用快捷键总结
    【总结——HTTP协议】
    在项目中使用log4net记录日志
  • 原文地址:https://www.cnblogs.com/yhcTACK/p/15426895.html
Copyright © 2011-2022 走看看