1. null
2.引用类型数组
3.继承
4.super关键字
1.null: 表示空,没有指向任何对象
若引用的值为null,则该引用不能再进行任何操作了,
若操作则发生NullPointerException空指针异常
2.引用类型数组:
声明Student型数组stus,包含3个元素,每个元素都是Student型,默认值为null
Student[ ] stus = new Student[3];
stus[0] = new Student(“zhangsan”,25,”LF”); //引用类型的元素----需new对象
stus[0]----为Student类型----凡是Student里面有的都能点出来
stus[0].name/age/address/study()/sayHi();
引用数组的演示:
1)
Student[ ] stus = new Student[3];
stus[0] = new Student(“zs”,26,”LF”);
stus[1] = new Student(“ls”,28,”JMS”);
stus[2] = new Student(“ww”,27,”SD”);
System.out.println(stus[0].name); //输出第一个学生的名字
stus[1].age = 22; //修改第二个学生的年龄为22
stus[2].sayHi(); //第三个学生跟大家问好
2)
Student[ ] stus = new Student[ ]{
new Student(“zs”,26,”LF”),
new Student(“ls”,28,”JMS”),
new Student(“ww”,27,”SD”)
};
3.继承:
程序中的继承: 代码我可以自己不用写,照样可以拥有可以使用
作用: 实现代码的复用,减少代码的重复
继承的格式:extends泛化: 子类可以继承父类中的属性和方法,使得子类拥有同样的属性和方法
语法:
class 父类{}
class 子类 extends 父类{}
超类/父类: 所有子类所共有的属性和行为
**派生类/子类:**子类所特有的属性和行为
继承中的两大特点:
1.单根性(单一继承): 一个父类可以有多个子类,但是一个子类只能有一个父类
2.传递性:逐层传递
重点: 构造方法不能继承,但是子类继承父类之后,子类会默认调用父类中的无参构造,如果父类定义了带参构造,那么子类中无参构造就会失效,会报编译错误
两种解决办法:
1.在父类中补全无参构造
2.在子类中使用super()调用父类的构造
super的用法:
super.成员变量-------------访问父类的成员变量
super() -----------------------调用父类构造方法:必须位于子类构造方法的第一行
super.方法名()--------------调用父类的方法
this关键字和super关键字的区别
this: 指的是调用当前对象
super: 指的是调用当前对象的一个父类
this()去调用相应的构造 是指在一个类中
super()调用父类的构造 是指在两个类中
只有静态方法和静态变量可以通过类名打点调用