一、 为什么需要继承: 若多个类中都需要一些属性和方法,那么就可以将属性和方法抽取到一个父类中,需要的子类可以通过extends关键字去继承这个父类后拥有相应的属性和方法。 类、数组、方法----引用数据类型 二、 继承的流程: 1、 编写父类:Animal 2、 编写子类:Dog、Cat、Pig 3、 在子类中通过extends关键字去继承父类: 三、 继承的注意事项: 1. 父类中的属性和方法只有使用protected、public修饰的才能被子类继承。 2. 当编写一个类时,若使用了extends关键字继承某个父类,该父类就是当前类的直接父类; 若没有使用extends关键字继承某个父类,系统会自动继承object类,object就是该类的直接父类;所有类都会直接或间接继承object类。 3. 子类继承父类后,只要父类是使用protected、public修饰的方法都能被子类继承,若子类对父类的方法不满意可以通过@Override标识重写父类的方法。 4. 子类中重写父类方法,子类中的方法访问(范围)修饰符只能是与父类相同或更大,而不能比父类的修饰符更小。 5. Java是一个单继承的开发语言,即一个类只能继承一个父类,但是可以实现多个接口。 6. Final修饰的类是终态类,是不能被其他类继承的;final修饰的方法是终态方法,是不能被子类重写(覆盖)。 四、 继承后的初始化流程: 1. 初始化父类的属性: 2. 初始化父类的静态代码块: 3. 初始化子类的属性: 4. 初始化子类的静态代码块: 5. 初始化父类的构造方法: 6. 初始化子类的构造方法: 7. 初始化子类或父类的实例方法: 五、 Super关键字: Super是“超级,父类”的意思,通过该关键字可以去访问父类中的资源(属性、构造方法、实例方法)。 1. Super访问父类的属性: 格式:super.属性名 举例:super.name 2. Super访问父类的实例方法: 格式:super.方法名() 举例:super.publicMethod() 3. Super访问父类的构造方法: Super(); 注意: 1) 只能在子类的构造方法中调用父类的构造方法,而不能在实例方法中调用父类的构造方法。 2) 调用父类构造方法的语句之前不能有其他语句。注释除外 3) This();调用自己类的构造方法;在一个构造方法中调用另一个构造方法,调用构造方法的语句前不能有其他语句。 六、 抽象方法和抽象类: 1. 抽象方法: Java当中的方法有两个部分构成:定义和实现,既有定义部分和实现部分的方法称为实现了的方法; 只有定义部分而没有实现部分的方法称为抽象方法,抽象方法需要使用abstract关键字修饰,{}用;代替。 2. 抽象类: 一个类中若包含了抽象方法,那么这个类就必须使用abstract修饰符将他声明为抽象类;抽象类中可以包含抽象方法、实例方法。也可以没有抽象方法。 3. 抽象类的注意事项: 1) 抽象类和接口都是不能被实例化的,即不能创建抽象类和接口的对象。 2) 一个类若继承了一个抽象类或实现接口,该类有两种选择,要么将自己声明为抽象类,要么实现所有的抽象方法。
原文地址:https://www.cnblogs.com/zhangzimuzjq/p/11692236.html
时间: 2024-10-31 02:06:29