Java笔记

Java _继承

2018-04-25  本文已影响0人  Ethan丶Xiao

1、继承关系

基于某个父类对对象的定义加以新的拓展,而产生新的子类定义,子类可以继承父类原来的某些

定义,也可以增加父类没有的定义,或者颠覆父类的某些特性;

在java中,存在多个类时,使用:“extends”关键字来表示子类与父类的关系;

语法格式:在定义子类是定义继承自哪个父类

        public class 子类名 extends 父类名(){

        //自己特有的状态的行为

        }

在Java中,只允许单继承,不允许多继承;只能有一个直接的父类;但是可以有多重继承;

在Java中,除了object类之外,每一个类都有直接父类;object要么是一个类的直接父类,要么

是一个类的间接父类;

继承关系的作用

        1):解决代码的重复问题

        2):真正的作用:表示出一个体系

继承的条件

        1):父类中的成员使用public修饰的;子类继承;

        2):父类中的成员使用protected修饰的,即使不在同一个包中,也会继承;

        3):如故父类子类在同一个包中,此时子类可以继承父类中缺省修饰符修饰的成员;

        4):如果父类成员使用private修饰,子类无法继承;

        5):父类的构造器,子类无法继承;

方法的覆盖

        当子类继承到父类的方法不需要时,可以在子类中定义一个与父类方法名相同的方法,覆盖

        掉父类的方法;

遵循的原则

        1):方法的签名相同(方法签名 = 方法名 + 方法的参数列表)

        2):子类方法的返回类型和父类方法的返回类型相同或者是其子类(即更详细的类型);

        3):子类方法声明抛出的异常要和父类相同或者是其子类;

        4):子类方法的访问权限必须必父类更大或者相同;(privite修饰的方法不能继承也就不存在覆盖)

        在子类覆盖方法前面加上 @override  可以检查其下一个方法是否是覆盖方法,不是则会报错;


2、方法重载与方法覆盖的区别

        方法重载:Ovelode

        方法覆盖:Override

        名字很像,没有关系;

        方法重载:解决了同一个类中,方法作用相同名称不同的问题;(两同一不同:在同一个类中方

        法名相同,传参列表不同)

        方法覆盖:解决子类继承父类之后,可能父类中的某个方法不符合子类中的某个特征,此时子类

        需要在子类中重新定义该方法,重写方法体;(一同两小一大:方法签名相同;返回类型和抛出

        的异常相同或者更详细;访问权限相同或更大)


3、super关键字

        在子类的某一个方法中,调用被覆盖的父类方法;

        super:当前对象的父类对象;

        this:当前对象,谁调用this,this就是哪一个对象;

上一篇下一篇

猜你喜欢

热点阅读