Java第三天

1.继承:提高代码的复用性;类与类之间产生关系,提供了多态的前提(。。)
    为什么Java不支持多继承:当一个类同时继承两个父类时,两个父类有相同的功能,子类对象调用该功能时产生错误

    但是Java支持多重继承,A继承B,B继承C,C继承D,多重继承意味着继承是有体系的,体系中的顶层父类是通过不断向上抽取而来
    简单来说:对于一个继承体系的使用,查阅顶层父类的内容,创建最底层子类的对象

    子类成员特点:
        1.成员变量:子父类中出现一样的属性,子类对象调用该属性时,值是子类的属性值,如果要调用父类的属性值使用super关键字
        2.成员函数:当子父类出现一模一样的方法,建立子类对象会运行子类中的方法也就是覆盖了父类的方法。
        3.构造函数:子类构造函数的第一行其实都有一条隐身的super()语句
        注意:子类所有的构造函数都会默认访问父类的空参构造函数,如果父类没有空参构造函数那么子类构造函数内必须通过super语句指定访问的父类的构造函数
        
        super()和this()是否可以同时出现构造函数中?
        两个语句只能有一个定义在第一行,所以只能出现其中一个;为何一定要定义在第一行,super()或者this()都是调用构造函数,构造函数用于初始化,所以初始化的动作先完成


    方法覆盖需注意:子类覆盖父类需保证子类方法的权限大于等于父类方法的权限;覆盖时要么都静态要么都不静态,静态只能覆盖静态,或者被静态覆盖。

    继承的弊端:打破封装性。对于一些类或者类里面的功能,是需要被继承或者复写的

2.final特点:
    1.修饰符。修饰类,方法,变量
    2.最终类,不可以被继承
    3.最终方法,不可以被覆盖
    4.常量,只能赋值一次


3.抽象类:abstract
    特点:1.抽象方法定义在抽象类中,抽象类和抽象方法必须由abstract关键字修饰
          2.抽象方法只定义方法声明,并不定义方法实现
          3.抽象类不可以被创建对象(实例化)
          4.只有子类继承抽象类并覆盖了抽象类的所有抽象方法,子类才可以实例化,否则该子类还是抽象类
    抽象类细节:
        1.抽象类是否有构造函数:有,用于给子类对象进行初始化
        2.抽象类是否可以定义非抽象方法:可以,抽象类比一般类多了抽象函数,但是比一般类少了一个创建对象的部分

4.抽象类的关键字abstract和哪些关键字不能共存:final,private,static

5.抽象类是否可以定义抽象方法:可以抽象方法目的就是为了不让该类创建对象

6.模板方法设计模式:

转载于:https://my.oschina.net/u/3434743/blog/883107

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值