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()//猫睡觉 需要注意的是在使用虚拟方法调用的时候不能调用父类独有的方法,这会在运行时报错,在编译时没事,编译的时候只编译等号左边。但是在运行的会看具体的对象,在子类中找不到相应的方法自然会报错。

  • 相关阅读:
    模拟4题解 T3奇袭
    模拟4题解 T1礼物
    [BZOJ2427][HAOI2010]软件安装
    [BZOJ4010][HNOI2015]菜肴制作
    deeplearning 重要调参参数分析
    论文阅读笔记八:SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation (IEEE2017)
    向github上提交自己的project
    c++ 链表基础功能实现
    c++实现 给定直角停车位两个点,求取剩余两点坐标。
    matlab转c++代码实现(主要包含C++ std::vector,std::pair学习,包含数组与常数相乘,数组相加减,将数组拉成一维向量,图片的读入等内容)
  • 原文地址:https://www.cnblogs.com/yhcTACK/p/15426895.html
Copyright © 2011-2022 走看看