• 封装,继承,多态


    1.封装
    封装性在Java当中的体现:(封装就是将一些细节信息隐藏起来,对于外界不可见。
    1. 方法就是一种封装
    2. 关键字private也是一种封装
    一旦使用了private进行修饰,那么本类当中仍然可以随意访问。但是!超出了本类范围之外就不能再直接访问了。
    间接访问private成员变量,就是定义一对儿Getter/Setter方法必须叫setXxx或者是getXxx命名规则。
    对于Getter来说,不能有参数,返回值类型和成员变量对应;
    对于Setter来说,不能有返回值,参数类型和成员变量对应。

    对于基本类型当中的boolean值,Getter方法一定要写成isXxx的形式,而setXxx规则不变。
    2.继承
    定义父类的格式(普通类的定义)
    public class 父类名称{

    }

    定义子类的格式
    public class 子类名称 extends 父类名称{
    ...
    }
    在父子类的继承关系当中,如果成员变量重名,则创建子类对象时,访问有两种方式:
    直接通过子类对象访问成员变量:
    等号左边是谁,就优先用谁,没有则 向上找。
    间接通过成员方法访问成员变量:
    该方法属于谁,就优先用谁,没有则向上找。
    继承关系中,父子类构造方法的访问特点:
    1. 子类构造方法当中有一个默认隐含的“super()”调用,所以一定是先调用的父类构造,后执行的子类构造。
    2. 子类构造可以通过super关键字来调用父类重载构造。
    3. super的父类构造调用,必须是子类构造方法的第一个语句。不能一个子类构造调用多次super构造。
    总结:
    子类必须调用父类构造方法,不写则赠送super();写了则用写的指定的super调用,super只能有一个,还必须是第一个。

    3.多态
    代码当中体现多态性,其实就是一句话:父类引用指向子类对象。

    格式:
    父类名称 对象名 = new 子类名称();
    或者:
    接口名称 对象名 = new 实现类名称();
    Fu obj = new Zi();       左侧父类的引用,指向了右侧子类的对象
    使用多态的写法,访问成员变量的两种方式:

    1. 直接通过对象名称访问成员变量:看等号左边是谁,优先用谁,没有则向上找。
    2. 间接通过成员方法访问成员变量:看该方法属于谁,优先用谁,没有则向上找。
    在多态的代码当中,成员方法的访问规则是:new的是谁,就优先用谁,没有则向上找。

    向上转型一定是安全的,没有问题的,正确的。但是也有一个弊端:
    对象一旦向上转型为父类,那么就无法调用子类原本特有的内容。
    解决方案:用对象的向下转型【还原】。
    向上转型:对象的向上转型,就是:父类引用指向子类对象。不能调用子类的特有方法
    向下转型:子类 子类对象=(子类)父类对象 Cat cat = (Cat) animal;注意原本是什么,向下转型就应该变为什么
    要想
    知道一个父类引用的对象,本来是什么子类?
    格式:
    对象 instanceof 类名称
    这将会得到一个boolean值结果,也就是判断前面的对象能不能当做后面类型的实例。
     



     
     
     
     
     
  • 相关阅读:
    ORA16014 与 ORA00312
    ORA26687
    ORA32004问题解决
    ORA23616:执行块5失败
    Streams实践之Schemas级复制
    Streams FAQ
    ORA23622: 正在执行操作SYS.DBMS_STREAMS_ADM.MAINTAIN_GLOBAL
    为什么白帽SEO更好?
    HyperV虚拟机安装及网卡无法找到,驱动无法安装解决办法
    Memcahed分布式缓存服务替换Session解决方案——简单介绍[转]
  • 原文地址:https://www.cnblogs.com/wjy980402/p/13533577.html
Copyright © 2020-2023  润新知