美文网首页
JAVA基础之面向对象三大特性:封装、继承、多态

JAVA基础之面向对象三大特性:封装、继承、多态

作者: Owen270 | 来源:发表于2018-09-14 17:47 被阅读12次

    参考文章:
    https://www.cnblogs.com/hysum/p/7100874.html

    https://www.cnblogs.com/hansheng1988/p/3721290.html

    1.封装

    将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。

    1.1对属性的封装
    image.png
    1.2对方法的封装可以通过访问修饰符号
    image.png
    1.3.内部类( Inner Class )就是定义在另外一个类里面的类。与之对应,包含内部类的类被称为外部类。)
    成员内部类
    image.png
    静态内部类
    image.png
    方法内部类
    image.png
    匿名内部类

    匿名类是不能有名称的类,所以没办法引用他们。必须在创建时,作为new语句的一部分来声明他们。但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口。 


    image.png image.png

    2.继承

    继承是类与类的一种关系,子类拥有父类的所有属性和方法(除了private修饰的属性不能拥有)从而实现了实现代码的复用。

    2.1.方法的重写(子类如果对继承的父类的方法不满意(不适合),可以自己编写继承的方法,这种方式就称为方法的重写。当调用方法时会优先调用子类的方法)

    a、返回值类型
    b、方法名
    c、参数类型及个数
    都要与父类继承的方法相同,才叫方法的重写

    2.1.子类中对方法的重载和扩展
    注意: final 修饰类,则该类不允许被继承, final 修饰方法,则该方法不允许被覆盖(重写),final 修饰变量,则该变量的值只能赋一次值,在声明变量的时候才能赋值,即变为常量。

    3.多态(继承是多态的基础,无继承也就没有多态,只允许单继承,这样做虽然保证了继承关系的简单明了,但是功能上有很大的限制,所以,Java引入了多态性的概念。此外,抽象类和接口也是解决单继承规定限制的重要手段。同时,多态也是面向对象编程的精髓所在)

    3.1.引用多态

    父类的引用可以指向本类的对象:
    Animal animal=new Animail();

    父类的引用可以指向子类的对象:
    Animail dog=new Dog();

    3.2.方法多态

    父类的引用可以指向本类的对象:
    Animal animal=new Animail();
    animal 只能访问父类Animail本类的非private属性和方法

    父类的引用可以指向子类的对象:
    Animail dog=new Dog();
    dog只能访问访问父类中的非private属性和继承以及重写的方法(子类有重写父类的方法,调用时,先调用子类重写的方法,没有重写则调用父类)

    注意:如果我们在子类中编写一个独有的方法(没有继承父类的方法),此时就不能通过父类的引用创建的子类对象来调用该方法!!!
    多态也有弊端:当父类引用指向子类对象时,虽然提高了扩展性,但是只能访问父类中具备的方法,不可以访问子类中特有的方法。(前期不能使用后期产生的功能,即访问的局限性)

    、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

    、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

    、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

    Android面试参考
    1.40个比较重要的Android面试题https://www.cnblogs.com/WangQuanLong/p/5826098.html

    2.java基础:http://blog.csdn.net/huangqili1314/article/details/79448187

    3.android高级面试题:https://www.cnblogs.com/deman/p/5860976.html

    4.okHttp的用法:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0106/2275.html

    相关文章

      网友评论

          本文标题:JAVA基础之面向对象三大特性:封装、继承、多态

          本文链接:https://www.haomeiwen.com/subject/povogftx.html