zoukankan      html  css  js  c++  java
  • Java 封装、继承、多态

    Java 封装、继承、多态

    1.封装:

    封装的理解:

    将类的某些信息隐藏在类的内部,不允许外部程序直接访问,并通过该类提供的方法来实现对隐藏信息的操作和访问。(简单的说就是隐藏对象的信息,留出访问的接口)。

    特点:1.只能通过规定的方法访问数据;2.隐藏类的实例细节,方便修改和实现。

    实现封装的方式:使用访问控制符:

    java提供了三种访问权限,准确的说还有一种是默认的访问权限,加上它一共四种。

    private   在当前类中可访问

    default        在当前包内和访问

    protected    在当前类和它派生的类中可访问

    public          公众的访问权限,谁都能访问

    现在代码实现下封装:

     现在有两个类 学生类里有几个共有的字段 name age sex 现在用另一个Teacher类是可以访问它的属性的并非没有报错。

     现在把字段的访问控制符 都改成了private Teacher类就访问不到了 这样就完成了属性的封装 那怎么让外界访问到Student的字段呢?

    就要用get set方法了

     现在写了set和get方法 其他类只需要用get和set方法 就可以完成值的设置和获取

    运行Teacher.java结果:

     可以看到设置并获取到了值

    2.继承:

    继承的概念

    继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。

    继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

    类的继承格式:

    在 Java 中通过 extends 关键字可以申明一个类是从另外一个类继承而来的,一般形式如下:

    class 父类 {
    }
     
    class 子类 extends 父类 {
    }

    代码实现一下:

     现在这里有三个类 Student Person Teacher 其中Student 和 Teacher 都继承了Person 所以 Person是父类 Student和Teacher是子类

     现在向Preson类写一个字段和一个方法 在子类中创建父类对象 然后可以看到子类都可以调用父类的方法和属性 这就是继承:子类从父类继承方法,使得子类具有父类相同的行为。

    运行子类结果:

     得到了父类的方法和属性

     当我们用一个对象 点 的时候下面会有很多方法 我们并没有继承为什么会有呢?

    这是因为java的所有类都继承的object类这些方法其实就是object类中的方法

    3.多态:

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

    多态就是同一个接口,使用不同的实例而执行不同操作,如图所示:

    代码实现多态:

     现在有三个类 Person Student 和 Text  Student继承了Person 

    现在在测试类里 分别new三个对象 可以看到 都是new的Student 但是他的引用类型可以是他的父类和Object 

     分别调用student的say方法和student2的say方法

    运行:

     可以看到都调用了父类的say方法

     现在在Student中重写父类的say方法

     在测试类中再次调用student的say和student2的say方法

    运行:

     可以看到虽然student2引用类型是Person但是并没有执行父类的say方法

    这就完成了多态 虽然都是同一个父亲但是自己完成了不一样的操作

  • 相关阅读:
    Encryption (hard) CodeForces
    cf 1163D Mysterious Code (字符串, dp)
    AC日记——大整数的因子 openjudge 1.6 13
    AC日记——计算2的N次方 openjudge 1.6 12
    Ac日记——大整数减法 openjudge 1.6 11
    AC日记——大整数加法 openjudge 1.6 10
    AC日记——组合数问题 落谷 P2822 noip2016day2T1
    AC日记——向量点积计算 openjudge 1.6 09
    AC日记——石头剪刀布 openjudge 1.6 08
    AC日记——有趣的跳跃 openjudge 1.6 07
  • 原文地址:https://www.cnblogs.com/love2000/p/14137724.html
Copyright © 2011-2022 走看看