java继承

1.继承 (1)什么时候使用继承 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中, 那么多个类无需再定义这些属性和行为,只要继承那个类即可。 (2)如何实现继承 通过extends关键字可以实现类与类的继承 public class PhpTeacher extends Teacher {} (3)继承的好处,缺点 提高了代码的复用性 提高了代码的维护性 让类与类之间产生了关系,是多态的前提 (4)继承特点:单继承 多层次 (5)继承的注意事项 a.继承中类之间体现的是:”is a”的关系。(……是……的一种) 学生是人类的一种 b.不要为了部分功能而去继承 c.子类继承父类,子类只能继承父类非私有的成员变量和成员方法 d.构造方法不能被继承,只能被调用!子类中所有的构造方法默认都会访问父类中无参构造方法 e.子类中存在与父类同名的成员变量 e1:在子类方法中访问一个变量 首先在子类局部范围找 然后在子类成员范围找 最后在父类成员范围找(肯定不能访问到父类局部范围) 如果还是没有就报错。(不考虑父亲的父亲…) f.super(…)或者this(….)必须出现在第一条语句上 g:子类不能继承父类的构造方法,但是可以通过super(后面讲)关键字去访问父类构造方法。 (6) 方法重写 定义:在子类中,有与父类完全相同(返回值类型 方法名 参数)的方法! 应用: 当子类需要父类的功能,而功能主体子类有自己特有内容时, 可以重写父类中的方法,这样,即沿袭了父类的功能,又定义了子类特有的内容, 最终使用的是子类自己的 注意:方法重写,子类的权限修饰符必须大于等于父类权限修饰符 (7)面试题: 1.方法重写(覆盖,复写)和方法重载的区别?方法重载能改变返回值类型吗? 方法重载(Overload ):在本类中,有两个或两个以上的方法, 方法名相同,参数列表(顺序,数量,类型)不同. 方法重写( Override):在子类中,有与父类完全相同的方法,那么就说子类重写父类的方法 不能以返回值类型区分重载,可以改变返回值类型 2. this关键字和super关键字分别代表什么?以及他们各自的使用场景和作用。 this代表自身引用 super代表父类引用 this用在本类中 super用在子类中 调用构造方法:this(参数) super(参数) 调用实例方法:this.方法名() super.方法名() 调用成员变量:this.属性 super.属性 this应用场景:封装(在本类中区分形参和私有属性) super应用场景:继承(在子类中调用父类非私有成员) 2.final修饰符 修饰类,修饰成员方法,修饰成员变量 final修饰的类不能被继承 final修饰的方法不能被重写 final修饰的变量是常量(一旦赋值,不能被改变) 面试题:final,finally,finalize区别 final:在方法声明上,分别演示基本类型和引用类型作为参数的情况 基本类型,是值不能被改变 引用类型,是地址值不能被改变,但是该对象的堆内存的值是可以改变的 补充:方法互相调用 同一个类中:方法名() 不同类中:创建对象 对象名.方法名()
原文地址:https://www.cnblogs.com/hdj1073678089/p/7283135.html