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

    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值结果,也就是判断前面的对象能不能当做后面类型的实例。
     



     
     
     
     
     
  • 相关阅读:
    制作LiveCD
    ubunt下的MinimalCD
    ArchLinux安装开源VMware Tools
    轻松搭建自己的Linux发行版本
    五个你可能闻所未闻的出色的Ubuntu替代发行版
    arch Linux not found device 错误解决
    Arch linux安装
    VM上成功安装mac os x
    VM8下安装Mac OS X 10.7
    VMwareWorkstation10安装OS_X_Mavericks10.9.2图文详细教程
  • 原文地址:https://www.cnblogs.com/wjy980402/p/13533577.html
Copyright © 2011-2022 走看看