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