继承

来源:互联网 发布:乾坤nb买卖源码 编辑:程序博客网 时间:2024/06/04 19:24
object是所有类的祖先


继承:(单继承只有一个直接父类)extends


子类可以继承父类的那些东西
1继承public和protected修饰的属性和方法,无论子类和父类是否在同一个包里!
2继承默认权限修饰符的属性和方法,但子类和父类必须在同一个包里!
3无法继承private修饰的属性和方法!无法继承父类的构造方法!


执行顺序:父类属性,父类构造方法,子类属性,子类的构造方法!


方法的重写要求:方法名相同,参数列表相同,返回值类型相同或者是其子类,重写方法不能缩小被重写的访问权限


重载和重写的区别联系
重载:重载涉及同一个类的同名方法,要求方法名相同,参数列表不同,与返回值类型,访问修饰符无关
重写:子类和父类之间的同名方法,要求方法名相同参数列表相同返回值类型相同,访问修饰符不能严与父类
位置 方法名  参数表 返回值访问修饰符
重写: 子类 相同   相同 相同或字类 不能比父类严格
重载: 同类 相同   不相同 无关 无关


super:代表调用直接父类对象
1super必须出现在子类中【子类的方法和构造方法】
2可以访问父类属性,方法,构造方法
3无法访问private成员


继承条件下的构造方法的调用:
1、如果子类的构造方法中没有通过super显式调用父类的有参构造方法,也没有通过this显式调用自身的其他构造方法,则系统会默认先调用父类的无参构造方法。在这种情况下,写不写“super();”语句,效果是一样的。
2、如果子类的构造方法中通过super显式调用父类的有参构造方法,那将执行父类相应构造方法,而不执行父类无参构造方法。
3、如果子类的构造方法中通过this显式调用自身的其他构造方法,在相应构造方法中应用以上两条规则。
特别注意的是,如果存在多级继承关系,在创建一个子类对象时,以上规则会多次向更高一级父类应用,一直到执行顶级父类Object类的无参构造方法为止。


抽象类的特点:
抽象类不能实例化。可以没有,有一个或者多个抽象方法
抽象类只有方法声明,没有方法实现。有抽象方法的类必须声明为抽象类。子类必须重写所有的抽象方法才能实例化,否则子类还是一个抽象类!
抽象方法必须在子类中被实现,除非子类是抽象类!
抽象类中可以有构造方法:其构造方法可以被本类的其他构造方法调用,若此构造方法不是由private修饰,也可以被本类的子类中的构造方法调用!


final:
修饰的类不能被继承
修饰的方法不能被子类重写
修饰的变量成为常量
使用final修饰的引用变量不可指向另外一个的对象,变量的值是固定不变的,而变量所指向的对象的属性值是可变的!

0 0
原创粉丝点击