引用类型数组
int[]为整形数组,String[]为字符串类型数组。一个里面装的是整数,另一个是字符串。而我们将一个类中的对象作为元素组成的数组称为引用类型数组。
public class Aoo{
int[] a = new int[10];
Aoo[] aoos = new Aoo[3];
}
上面为声明一个整形数组和引用型数组的方法。这个引用型数组的每个元素都是Aoo类的对象。
继承:
1)作用:代码的复用
相同的代码需要多次使用时,将这些代码作为整体存给一个类实现代码的复用。两个类有相同的属性时,比如不同种类的飞机都有长宽,质量等,我们可以创建一个飞机类,包含了这些属性,然后细分到战斗机,载人飞机,无人机等,都可以不写这些属性,然后直接继承飞机类,自己就拥有了这些属性。然后在每个类构造方法中给这些属性赋值。
2)通过关键字extends来实现继承
3)超类/父类:共有的属性和行为
派生类/子类:特有的属性和行为
如下图代码中,Plane为超类又称父类,剩下的三个类称为派生类或子类。继承就是子类继承了父类的属性和行为。
4)派生类可以使用自己的属性和方法与超类的属性和方法,而超类不能用派生类的属性和方法。如下,创建Plane超类对象不能调用FighterPlane的shoot()方法,而FighterPlane类创建的对象可以调用fly()方法。
5)一个超类可以有多个派生类,但是一个派生类只能继承一个超类。加强理解,一个爸爸可以有几个孩子,而孩子只有一个爸爸。
6)继承具有传递性——如下Plane类的width等数据会传给FighterPlane然后又传给Boin747。
7)java规定,构造派生类之前必须先构造超类,派生类构造方法是若没有调用超类的构造方法,默认super()调用无参构造。
public class Plane{
int width;
int height;
int quality;
fly(){
System.out.println("起飞咯");
}
Plane(int width, int height, int quality){
this.width = width;
this.height = height;
this.quality = quality;
}
}
class FighterPlane extends Plane{
FighterPlane(){
super(10,11,12);
}
shoot(){
System.out.println("发射")
}
}
class Boin747 extends FighterPlane{
speed = 340;
super(10,11,13);
}
class Holicopter extends Plane{
HOlicopter(){
super(12,10,11);
}
}
class UAV extends Plane{
UAV(){
super(10,11,12);
}
}
super:指代当前对象的超类对象
super就是超类的对象,与this对比。
1)super.成员变量名——访问超类的成员变量
2)super。方法名()——调用超类的方法
3)super()——调用超类的构造方法