• 面向对象编程----继承---笔记


    继承关系: 父与子(官方) 类与类之间的关系
    继承与属性和方法有关
    实现继承 , 子类 extends + 父类
    所有的实现类
    为什么需要继承?
    • 是为了实现方法的多态, 实现代码的重用
    为什么继承可以实现代码的重用?
    • 继承可以使得子类具有父类别的各种属性和方法,而不需要再次编写相同的代码
    继承的解析:
    § 现今面向对象程序设计技巧中,继承并非以继承类别的“行为”为主,而是继承类别的“类型”,使得组件的类型一致。
    § 另外在设计模式中提到一个守则,“多用合成,少用继承”,此守则也是用来处理继承无法在运行期动态扩展行为的遗憾。

    多继承: 在c++中有体现
    使用单继承的优点:
    多继承会让子类"可控性"越来越差,单继承会使子类更为可控.
    多继承在现实生活中会很强大,但是用于编程时,可控性差
    Tips : Object 父类-基类-超类
    ○ 同包约束, 继承->同包时可以继承,不同包也能继承
    ○ 1 作为子类,任何时候都可以继承到protected修饰的内容
    (子类和父类同不同包没关系)
    ○ 2 默认缺省的权限修饰符, 只能在同一个包中进行访问
    3 私有的,则只能在本类中进行访问
    子类如果定义了一个与父类一样名称的变量, 则会覆盖父类的对应名称的变量的值(属性的覆盖或属性的隐藏)
    不管子类中的内容如何修改,都不会影响父类中的值
    在类中直接定义的属性未手动赋值,(没有分配初始值, 那么程序会自动生成初始值 ), 此时修改该属性的值必须在方法中或者语句块中去实现.
    子类重写方法:
    子类调用方法的时候, 会优先调用子类的方法, 如果找不到对应的方法, 那么再调用父类的方法
    方法重写:
    在父类中定义一个方法, 其子类中也定义一个一模一样的方法
    方法重写和方法重载是两码事
    @Override 符号表示重写,放在方法名之前
    @Override 就是注解, 表示验证一下这个方法是否是重写
    在企业规范中, 是必须要写@Override的, 这是规范
    方法重写的规则: (范围: 必须有继承关系)
    § 父类和子类的方法名必须相同
    § 父类和子类的方法形参必须相同
    § 父类和子类的返回值类型必须相同
    § 父类方法的权限修饰符的范围可以小于等于子类中的方法(如果父类中定义的是protected, 子类可以是protected/public
    § 方法体可以自行定义
    方法重载的规则: (范围: 在本类中实现)
    § 重载的英文单词为overload
    重载与重写的区别:
    § 重写必须存在继承关系, 重载是在本类中存在
    § 重载关心的是: 方法名相同, 参数不同(个数,顺序,类型), 与返回值无关
    § 重写关心的是: 方法名相同, 参数相同, 返回类型相同, 权限修饰符可以不同
    § 重写的权限修饰符, 子类中的范围 >= 父类中的范围; 重载的权限修饰符可以不同.

    Tips: final修饰的方法是不能被继承的(也不能被重写)
    被final修饰的类是不能被继承的(eg.String, 包装类, Math)

    构造方法的继承:
    § 默认情况下,在每一个子类的构造函数的第一行,调用super()方法
    public class son extends father {
    public son() {
    super(); //初始化当前子类的时候, 首先会去调用父类的构造方法. 必须放在构造器的第一行

    }
    }
    //如果显示的定义了父类的构造器,而且带参数,那么这个构造器就会把原有的隐式构造方法给覆盖掉
    当子类在调用父类的构造函数时, super()需要和父类中的构造函数保持一致. 如果有参数, 则必须传值.
    关键字this:
    this(); //代表调用本类的无参构造器
    this()和super()不能共存
    注意: 创建一个子类对象的时候,虽然直观看到的是调用的是子类的构造,但是必须先调用父类的构造器才行.
    没有成功调用父类的构造时, 子类对象创建就会失败;
    子类的构造器中, super()和this()不能同时存在
    this和super都必须放在构造器的第一行

  • 相关阅读:
    只要有梦想
    过去这一年
    Importing BizTalk Applications to Production Environment
    SQL Server 2005 – Database Master Key
    Check Page Rank of any web site pages instantly
    An Introduction to SQL Server Service Broker [WORD DOCUMENT]
    Svcutil.exe – Generate the proxy class for the WCF client application
    SQL Server 2005: how to add a linked server
    BizTalk Error: The published message could not be routed
    Enable routing for failed messages in BizTalk 2006
  • 原文地址:https://www.cnblogs.com/zjulanjian/p/10247519.html
Copyright © 2020-2023  润新知