继承exfends
从代码的角度来看,可以复用代码,减少代码的重复。
从面向对象的角度,可以派生。
继承就是拥有父类的所以成员。但除私有成员外的其他成员都可以访问。
注意:只能有一个父类,只能继承一个类。
铁定:
1.父类永远不知道有多少个类继承了他。
2.子类创建对象的时候先出父类后出子类(先构建父类对象内存,后构建 子类内存)
3.先选择子类方法,子类没有才选择父类的。
我们运用方法的重写,可以在子类重写父类的方法用来覆盖父类的方法。
final关键字
1.修饰在类时,,类不可以继承。
public final class Tset{}
2.修饰在方法上时,方法将不可以在子类重写。
final void ff(){}
3.修饰在变量是,就是常量
final int i=100;
super关键字
只能写在构造器的第一句,选择那个父类构造器进行构造。
public class Test1 extends Test { public Test1() { super("lisi");// 声明 要使用父类的那个构造器 构建父类对象 } }
this和super不能在一个构造器同时出现,他们有相似的地方,比如都只能写在第一句上。
当子类方法调用后还想调用父类的这个方法时,就需要用到super。
public class A { public void method() { System.out.println("Hello A!!"); } public static void method1(){ System.out.println("method1"); } } public class B extends A { public void method() { System.out.println("Hello B!!"); super.method(); } public static void method1() { System.out.println("method2"); A.method1(); } public static void main(String[] args) { B b = new B(); b.method(); B.method1(); } }