zoukankan      html  css  js  c++  java
  • 5面向对象基本特征

    封装

    1、把对象的属性、行为封装起来,其载体是类。
    	属性封装:private 私有化
    	行为封装:方法,封装的是一个独立的功能,一段代码。
    	对于调用者来说,隐藏了实现细节;暴露一些方法的签名供开发者调用。
    2、广义的封装
    	组件封装:对方给你开放了接口,你按照它规定的格式,把数据传给它,它计算完,并把结果返回。
    	例如:第三方组件、支付宝、网银支付。。。。
      系统封装:对使用者来说,不知道实现细节,但是知道怎么用。
    
    标准的javaBean
    	(1)属性私有化
    	(2)提供get/set方法
    	(3)保留无参构造
    

    继承(延续:相同点、扩展:特有点)

    为什么有继承?

    1、为了代码复用和功能扩展
    

    如何实现继承?

     [修饰符] 子类名 extends 父类名{}  
    

    继承的特点?

    	1、java只支持单继承。
    	2、java支持多层继承。
    	3、父类可以有多个子类。
    	4、子类会继承父类所有的属性和方法,但是如果修饰符为private,虽然继承过来了,但是不可见。
    	5、子类不会继承父类的构造器。
    	6、子类的构造器一定会调用父类的构造器。并且默认调用父类的无参构造器。当父类没有无参构造器时,需要在子类中,手动调用父类的构造器:super(实参列表);
    
    	为什么调用父类的构造器??
    

    重写(override)

    	定义:在子类中重写继承自父类的方法,方法名和参数列表相同,方法实现不同
    
    • 特点
      • 方法名:完全相同
      • 形参列表:完全相同
      • 返回值类型
        • void或者基本数据类型时:完全相同
        • 引用数据类型时:返回父方法类型,或者父方法返回类型的子类。
      • 修饰符
        • 权限修饰符
          • 重写方法的修饰符 >= 被重写方法的修饰符
          • 注意:父类方法不能是private,子类中不可见
        • 其他
      • 抛出的异常列表

    多态

    为了代码更灵活
    实现多态的前提是继承。
    多态:就是父类引用指向子类对象。(编译看左,运行看右)
    

    解惑?

    	1、Overload与Override的区别
    	Overload:重载  load的英文意思是载入,装载
    	Override:重写 
    
    	Overload概念:表示在同一个类中,出现了方法名相同,形参列表不同的两个或多个方法,称为方法的重载。注意与返回值无关。
    	Override:当子类继承父类时,会继承父类中的所有方法,但是父类的某个方法的实现不适用于子类,那么子类就重写该方法。
    	重写要求:
    		方法名:必须完全相同
    		形参列表:必须完全相同
    		返回值类型:1、如果是void、基本数据类型,则要求返回类型完全一样
    		2、如果父类方法返回类型时引用类型,则子类方法返回类型<父类方法返回类型。
    
    	2、java为何设计单继承?而不是多继承呢?接口为什么能多实现呢?
    		①从技术角度讲,降低复杂性。
    		类A有一个m()方法,类B有一个m()方法,而类C继承A,B;此时会发生问题,就是不确定继承哪一个m()方法。至于接口为啥是多实现呢?难道接口中的变量(属性都是 static final修饰的,即常量)可以区分?在编译器,常量值不同时不能通过编译。所以属性肯定一样的。至于方法,接口中的方法都是抽象方法,需要实现该接口的类去实现方法,最终调用的是子类的方法;而继承则不一样,父类的方法也是可以调用的,例如super.m(),你就不能确定调用A?还是B类中的方法了。
  • 相关阅读:
    启动时创建线程并传递数据
    C# 匿名方法 委托 Action委托 Delegate委托
    linq里的select和selectmany操作 投影运算
    C# 基础小知识之yield 关键字 语法糖
    在您的应用上运行性能测试
    loadrunner11有效的license
    30-hadoop-hbase-安装squirrel工具
    31-hadoop-hbase-mapreduce操作hbase
    29-hadoop-使用phtonenix工具&分页&数据导入
    28-hadoop-hbase入门小程序
  • 原文地址:https://www.cnblogs.com/xingrui/p/9792768.html
Copyright © 2011-2022 走看看