网站安全在线检测,企业网站建设高端品牌,中国林业建设协会网站,如何制作课程网站模板下载地址2 继承
需要两个类才能实现继承的效果。 比如#xff1a;类A 继承 类B A类 称为 子类 #xff0c; 衍生类#xff0c;派生类 B类 称为 父类#xff0c;基类#xff0c;超类
继承的作用 子类自动的拥有父类的所有属性和方法 #xff08;父类编写#xff0c;子类不需要…2 继承
需要两个类才能实现继承的效果。 比如类A 继承 类B A类 称为 子类 衍生类派生类 B类 称为 父类基类超类
继承的作用 子类自动的拥有父类的所有属性和方法 父类编写子类不需要再编写 。 代码复用 目前私有的属性和方法无法访问。 多态的基础。
继承语法 先定义父类 (单独的类) 在定义子类的同时实现与父类的继承关系
class B{String name ;public void t1() {}
}
class A extends B{//String name ;//public void t1() {}
}
A a new A();
a.name zs ;
a.t1();
继承特点 继承具有传递性 A extends B extends C A类中既有B类的内容又有C类的内容 基础具有不可逆性 A extends B A类中有B类的内容 但B类中没有A类的内容。 Java只支持单继承 C支持多继承 一个类只能继承一个父类。 但可以连续继承 A extends B extends C A extends B A extends C 不可以的 3 子类对象的创建过程 不存在父类对象这个概念
class A{String name ;public void t1(){}
}
class B extends A{int age ;public void t2(){}
}
new A(); //不算父类对象
new B() ;//这就是我们所说的子类对象 尽管B对象中的name属性是从A类中继承而来的 但使用过程中直接通过name名称就可以访问到。 可以使用JOL工具来查看内存结果 4 super关键字
可以指定父类的内容 属性方法构造方法
一般情况下在子类中可以默认指定父类的内容。 变量访问的顺序 局部变量-类变量-父类变量-报错 class B{String name1 ;
}
class A extends B{String name1 ;public void t1(){String name1 ;print(name) ;}
} 但有些情况必须使用super来指定父类的内容 子类中写了与父类中同名的属性和方法 重写 在子类的构造方法中指定要调用的父类的构造方法 在创建子类对象时不仅仅子类对象的构造方法会被调用父类的构造方法也会被调用 是在子类构造方法的第一行被调用的。 先调用子类的构造器先执行完父类的构造器 默认会在子类构造方法的第一行执行super(),表示调用父类的无参构造器
class A{String name ;public void t1(){}
}
class B extends A{public void t1(){}public void t2(){name ls ;name zs ;super.t1();}
}
class A{int a ;int b ;public A(int a , int b){this.a a ;this.b b ;}public void A(){}
}
class B extends A{int c ;int d ;public B(){}public B(int c , int d){}public B(int a , int b , int c, int d){//想将a和b交给父类的构造器//super()super(a,b);this.c c ;this.d d ;}
}
B b new B(10,20,30,40);
this和super关键字 在使用上this和super特点相似 但本质上完全不同 this的本质是一个参数变量存储的是当前方法所属对应的地址。 super的本质就是一个关键字用来指定父类的内容。这个指定效果在编译后就没有了。 而this是在运行时有所应用的。