zoukankan      html  css  js  c++  java
  • Java面向对象三大特性

    封装、继承、多态。
    1、封装
      封装就是将对象的属性和行为特征包装到一个程序单元(即类)中,把实现细节隐藏起来,
    通过公用的方法来展现类对外提供的功能,提高了类的内聚性,降低了对象之间的耦合性。
    2、继承
      继承是对原有类的拓展,举例说明:我现在有一个Person类,但是我想要一个学生对象,
    他拥有Person类的所有属性和方法,此外他还有学号属性,及上课、写作业等一些方法,
    我可以创建一个Student类,但是我不想重复写Person类中已经有了的属性和方法,那么,
    此时我就可以用Student类继承Person类,Student类就拥有了Person类里的属性和方法了,
    我只需要在Student类里添加另外的新的属性和方法就可以了。Person类就成为父类,
    Student类就称为子类。父类和子类之间是一般和特殊的关系,子类是一种特殊的父类。
    此外,子类还可以通过重写来改变父类中的方法,重写可以改变方法的返回类型和访问权限,
    不能改变方法名称。
    3、多态
      多态是建立在继承的基础上的,是指子类类型的对象可以赋值给父类类型的引用变量,
    但运行时仍表现子类的行为特征。也就是说,同一种类型的对象执行同一个方法时可以
    表现出不同的行为特征。

    继承扩展知识

    Q:java中静态属性和和静态方法的继承问题 以及多态的实质。
    首先结论是:java中静态属性和和静态方法可以被继承,但是没有被重写(overwrite)而是被隐藏。

    静态方法和属性是属于类的,调用的时候直接通过类名.方法名完成的,不需继承机制就可以调用如果子类里面定义了静态方法和属性,那么这时候父类的静态方法 或属性称之为“隐藏”,你如果想要调用父类的静态方法和属性,直接通过父类名.方法名或变量名完成,至于是否继承一说,子类是有继承静态方法和属性,但是 跟实例方法和属性不太一样,存在“隐藏”的这种情况。

    多态之所以能够实现是依赖于 继承 接口和 重写 、重载(继承和重写最为关键)。有了继承和重写就可以 实现父类的引用可以指向不同子类的对象。重写的功能是:“重写”后子类的优先级要高于父类的优先级,但是“隐藏”是没有这个优先级之分的。

    静态属性、静态方法和非静态的属性都可以被 继承 和 隐藏 而不能够被重写,因此不能实现多态,不能实现父类的引用可以指向不同子类的对象。 
    非静态的方法可以被继承和重写,因此可以实现多态。

    接口中的实现和类中的继承是两个不同的概念,因此不可以说实现接口的子类从接口那里继承了常量和方法

  • 相关阅读:
    【随机梯度下降】理解与使用
    【线性回归】波士顿房价预测
    【knn临近算法】预测年收入
    【knn近邻算法】算法实现的简单原理
    【线性回归算法】小案例之确诊病例数据预测(只用于理解预测算法理解)
    【前端】H5,底边按钮吸边,但是覆盖了列表循环的内容
    【Django组件】WebSocket的简单实现
    vue基础知识点
    ES6---Proxy的理解的使用
    Python 整数拆分
  • 原文地址:https://www.cnblogs.com/huangjinyong/p/9515614.html
Copyright © 2011-2022 走看看