1.引用类型数组:
1.与基本类型数组的区别:
1.给数组元素赋值必须new一下
2.若想访问对象数据必须通过数组元素打点
Student[] stus = new Student[3]; //创建Student数组对象
stus[0] = new Student("zhangsan",25,"LF"); //创建Student对象
stus[1] = new Student("lisi",26,"JMS");
stus[2] = new Student("wangwu",24,"SD");
System.out.println(stus[0].name); //输出第1个学生的名字
stus[1].age = 28; //修改第2个学生的年龄为28
stus[2].sayHi(); //第3个学生跟大家问好
for(int i=0;i<stus.length;i++){ //遍历所有学生
System.out.println(stus[i].name); //输出每个学生的名字
stus[i].sayHi(); //每个学生跟大家问好
}
2.继承:
-作用:代码复用
-通过extends来实现继承
-超类/父类:共有的属性和行为
派生类/子类:特有的属性和行为
-派生类既能访问自己的,也能访问超类,但是超类不能访问派生类的
-一个超类可以有多个派生类,一个派生类只能有一个超类-------单一继承
-具有传递性
-java规定:构造派生类之前必须先构造超类
-在派生类的构造方法中若没有调用超类的构造方法,则默认super()调用超类的无参构造方法
-在派生类的构造方法中若自己调用了超类的构造方法,则不再默认提供
>super()调用超类构造方法,必须位于派生类构造方法的第1行
3.super:指代当前对象的超类对象
super的用法:
1.super.成员变量名----------------访问超类的成员变量
2.super.方法名()----------------------调用超类的方法
3.super()--------------------------------调用超类的构造方法
//super的演示
public class SuperDemo {
public static void main(String[] args) {
Boo o = new Boo();
}
}
class Coo{
Coo(int a){
}
}
class Doo extends Coo{
Doo(){
super(5); //调用超类的有参构造
}
/*
//如下代码为默认的:
Doo(){
super();
}
*/
}
class Aoo{
Aoo(){
System.out.println("超类构造");
}
}
class Boo extends Aoo{
Boo(){
//super(); //默认的,调用超类的无参构造
System.out.println("派生类构造");
}
}