java 基础

多态--多种形态
    1.概念:父类引用指向子类对象。
    注:
        父类引用只能调用父类中所定义的属性和方法,子类独有的属性和方法不可调用。
        二者必须存在继承关系
        
    2.多态中的方法覆盖:
        子类覆盖父类中的方法,使用父类引用调用该方法,执行的是覆盖之后的。

    3.好处:
        降低耦合性
        屏蔽子类间的使用差异
        
    4.向上转型、向下转型(掌握)     
    向上转型(装箱):父类引用中保存的是子类对象。
            举例:Animal a = new Dog();
            注意:父类引用只能调用父类中的属性和方法。
            
    向下转型(拆箱):将父类引用中所保存的真实类型强制转换为自身类型。
            举例:Dog d = (Dog)a;
            注意:只有转换为子类真实类型,才可以调用子类中独有属性和方法。

封装


    1.概念:属性私有化(private),提供setXXX和getXXX。
    2.作用:保证数据的合理。
继承


    1.概念:类与类之间,特征和行为的赠与或获得。
        满足继承关系的前提:二者必须具备is a关系。
    2.语法:class 子类 extends 父类{}
      创建子类对象 = 父类共性 + 子类独有
    3.继承的好处:减少代码的冗余,提高代码的复用性。
    4.继承的特点:
        java只支持单继承,不支持多继承,但可以多层继承,形成集成体系结构。
        A 继承 B
        A 继承 B 继承 C
        A 继承 B   A 继承 C
        
    5.不可被继承
        ①构造方法
        ②private修饰的属性和方法
        ③父子类不在同一个package中,使用default修饰的属性和方法
三.访问修饰符
    访问修饰符       本类      同包      非同包父子类      其他
    private           √
    默认              √         √
    protected         √         √           √
    public            √         √           √                √
四.方法的覆盖
    1.什么时候需要覆盖?
        父类的方法无法满足子类的需求,需要覆盖。
    2.覆盖的要求:
        ①返回值类型、方法名、形参列表和父类完全一致
        ②修饰符和父类相同或者比父类更宽
        注:当子类覆盖父类方法后,调用该方法,执行的是覆盖之后的。
    3.Overload和Override区别?
        重载(Overload):一个类中定义多个相同名称的方法。
            要求:
                1.方法名相同
                2.参数列表不同(类型、个数、顺序)
                3.与访问修饰和返回值类型无关
    
        覆盖(Override):父类方法无法满足子类需求,需要进行覆盖。
            要求:
                1.返回值类型、方法名、形参列表和父类完全一致
                2.修饰符和父类相同或者比父类更宽
五.super(父类 基类 超类)
    1.用法:
        super.成员方法():表示调用父类中的成员方法
        super.属性:表示调用父类的属性
        super()和super(实参):表示调用父类的构造方法
    注意:如果构造中没有this()或者this(实参)或者super(实参),每一个构造方法中首行都隐式存在super()。
        在一个构造中this()或者this(实参)或者super()或者super(实参)因为都要求在首行,所以只能使用一个。


抽象类


    抽象类作用:
        1.为子类提供共性属性和方法。
        2.可声明引用,强制使用多态。
    抽象方法的作用:
        1.强制子类覆盖,否则子类声明为抽象类。
        
    总结:
        1.抽象类不能创建对象,可以声明引用。
        2.抽象类中不一定有抽象方法,而有抽象方法的类一定是抽象类。
        3.继承下,子类必须覆盖父类中抽象方法,否则子类声明为抽象类。
        4.抽象方法,只有方法声明,没有方法实现。


接口


    与抽象类的异同:
        相同:
            都可生成对应的.class文件。
            都不能创建对象。
            可以声明引用。
            都可以使用Object类中的方法。
            
        不同:
            接口只能定义公开静态常量,隐式存在public static final
             接口只能定义公开抽象方法
             没有构造方法、动态代码块、静态代码块
    接口的概念
        概念:接口是一种能力。
        应用场景:父类提供的方法个数无法满足子类的需求,可通过实现接口的方式扩充子类能力。
        注意:接口可以多实现。
    接口的规范
        实现接口,需要覆盖接口中的所有抽象方法,否则该类声明为抽象类。
        覆盖时访问修饰符必须是public。
    接口多态
        概念:使用接口引用指向实现类对象。
        注意:接口引用只能调用接口中所声明的方法,如果需要调用实现类中的方法,必须强转为实现类自身类型。
    常见关系
        类与类:单继承
            extends 父类名称
        类与接口:多实现
            implements 接口1,接口2
            
        接口与接口:多继承
            extends 接口1,接口2,接口3
————————————————
版权声明:本文为CSDN博主「apex_guagua」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/apex_guagua/article/details/118559543

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值