• 关于面向对象(OOB)的一些理解。主要是封装、继承、多态。


    【封装】
    1.将类的属性进行私有化处理,不允许外部程序直接访问。并对外提供统一的方法,设置和读取私有属性。
    2.实现访问控制,限制属性访问。
    优点:只能通过规定的方法访问数据,方便在方法中加入控制语句,防止不合法赋值。
    3.除了属性的封装之外,将需要重复使用的代码提取到方法中加入控制语句,防止不合法赋值。
    public class Demo01_Test {
    private String person;

    public String getPerson() {
    	return person;
    }
    
    public void setPerson(String person) {
    	this.person = person;
    }
    

    }

    【继承】

    1.子类继承父类使用extends关键字
    2.不能继承父类的私有属性。
    3.子类中访问父类成员需要使用super关键字。super.name
    super.属性 访问父类属性
    super.方法 访问父类方法

    如果,子类中没有同名的属性和方法覆盖父类,则依然可以直接使用this。属性调用从父类中继承的非私有属性。
    但是,如果子类中重写了与父类同名的属性:this.属性访问的是本类;super.属性访问的时父类属性。

    在子类的构造函数中使用super();调用父类构造。而且super()函数必须在子类构造的第一行。
    注意:即使使用super关键字也不能访问父类的私有属性和私有方法。

    private 本类
    friendly(默认)本类 本包
    protected 本类 本包 非同包子类
    public 本类 本包 非同包子类 其他任何包

    注意:protect在非同包子类中只能通过子类对象访问,不能直接调用或通过父类对象访问。

    父类属性》》父类构造》》》子类属性》》子类构造

    在java中继承只能单继承。但可以多层继承。
    public class test1(){}
    public class test2 extends test1(){}
    public class test3 extends test2(){}

    【多态】
    1.同一种事物,由于条件不同展示出不同的结果,叫做多态。
    例:
    英国人说英国话,中国人说中国话,不叫多态。
    同样是人,有人说中华,有人说或英国华,这交多态

     2.程序中的多态:同一个引用类型,由于使用不同的对象实力,而执行不同的操作。
     		Chinese c = new Chinese();	c.say();
      		English e= new English();	e.say();
      		英国人说英国华,中国人说中国话,这不叫多态。
      
     
      		Person p = new Chinese();	p.say();
     		Person p = new English();	p.say();
    		同样是人,有人说中国话,有人说英国华,这就是多态。
     	
     [实现多态的条件]
      1.子类继承父类。
      2.子类重写父类的方法。
      3.父类引用指向子类对象。//保证:同一个父类引用类型,用不同的子类实现不同的方法。
      
     
     【父子类转型】
      [向上转型]
     
      子类向父类转,自动转换。o 
      Person p=new Chinese();
      
      特点:绝对安全。子类独有的属性和方法将会丢失。只能调用父类中存在的属性和方法。
      		如果父类方法不是抽象方法,调用时执行的方法体依然是子类的。
      
      应用:多态中父类引用指向子类对象。
      
      [向下转型]
      父类向子类转:强制转换。
      Person p=new English();
      Chinese c =()Chinese p;//ClassCastException  类转换异常:因为p不是Chinese的实例,强转会造成类转换异常。
      
      	 Person p=new Chinese();
      Chinese c =()Chinese p;//ClassCastException  因为p是Chinese的实例,可以强制转换。
     
      [转换异常解决方法]:
      经常出现类转换异常。用instanceof检测父类引用是不是子类的实例。
      
      if(p instanceof Chinese){
      	Chinese c =(Chinese) p;
  • 相关阅读:
    【限时领奖】消息队列 MNS 训练营重磅来袭,边学习充电,边领充电宝~
    从函数计算到 Serverless 架构
    微服务治理热门技术揭秘:无损上线
    合作再升级!云原生加速器成员企业云霁科技获得阿里云产品生态集成认证
    开源小白到核心开发——我与 sealer 的成长故事
    【有奖评测局】阿里云容器镜像 ACR 测评团限时招募中!
    MSE 费芮新金融行业标杆案例
    NBU异构还原Oracle完整备份的一些总结
    Symantec NetBackup 8.1安装部署
    NFS高可用(NFS+keepalive+Sersync)
  • 原文地址:https://www.cnblogs.com/dadada-jiasheng/p/8750025.html
Copyright © 2020-2023  润新知