• Java面向对象编程:封装,继承,多态


    Java面向对象的三大特征:

    封装:通过Java的类来实现数据和操作方法的封装,对外界可以将每一个Java类都视为一个黑箱,只需调用该黑箱提供的方法即可完成你想要的操作。

    继承:通过类的继承,将统一的功能集中放在父类中,实现代码的重用和可维护性。

    多态:通过重载、重写与覆盖,实现不同类的不同形态特征。


    一个被定义成private的类成员为此类私有,它不能被该类外的所有代码访问,包括子类。


    如果子类中不显式调用父类的构造函数,则会调用父类的默认构造函数(如果有的话)。


    父类和子类的相互转换

    在Java中我们可以将子类的引用赋给父类的对象,那么这时子类中那些不是从父类继承来的成员将不再可见,我们可以在通过强制转换类型将父类再转换成子类类型,那些成员又变得可见了,那么转换的时候发生了啥?


    一个类在构造出来的时候,先把其各级父类都构造出来,一家人就是要齐齐整整嘛。这里写个测试例子,看看能不能拿到父类引用。

    image

    看来是拿不到父类实例的引用了。


    必须被继承的类:抽象类

    不能被继承的类:最终类


    父类的private成员方法是不能被子类方法覆盖的,因此private类型的方法默认是final类型的。


    final方法

    如果不允许其子类覆盖某个方法,则可以把这个方法声明为final方法。

    使用final方法的原因有两个:

    把方法锁定,防止任何继承类修改它的意义和实现。

    高效,编译器在遇到final方法时会转入内嵌机制,大大提高执行效率。


    对于final static类型的变量,static使得变量只存在一个副本,final使得它不能改变。


    final成员赋值规定:

    final成员能且只能被初始化一次。

    final成员必须在声明时或者在构造方法中被初始化,而不能在其他的地方被初始化。


    类,抽象类和接口的区别?

  • 相关阅读:
    /etc/fstab详解
    awk的简单用法2
    awk的简单用法3
    linux+nginx+mysql+php高性能服务器搭建
    awk的简单用法1
    ip_conntrack: table full, dropping packet.解决办法
    快速获得 Google Maps 地图页中心位置的经纬度
    Google 地图 教程收集
    第一章 Google Api Key的申请
    第二章 Google 常用功能
  • 原文地址:https://www.cnblogs.com/tuhooo/p/9049133.html
Copyright © 2020-2023  润新知