Day_01
一、关于java重写方法
重写父类方法时,函数名和参数类型需要一致,返回值只能更子类,例子如下
public class Main {
public static void main(String[] args) {
Father father = new Sub();
System.out.println(father.hello());
}
}
class Father{
public Object hello(){
return "我是父类";
}
}
class Sub extends Father{
public String hello(){
return "我是子类";
}
}
思考:java中任何出现父类的地方,都可以用他的子类替换。这就要求子类的返回值只能更子类(java上转型)。
二、java中数组的声明

以下三条均正确
1、数组是一个对象,不同类型的数组具有不同的类
2、数组是一个连续的存储结构
3、java中不存在 int *a这样的东西做数组的形参
三、抽象类
抽象类指有abstract修饰的class,其可以包含抽象方法,也可以不包含
抽象类和接口都是不能被实例化的,只有具体的类才可以被实例化
四、静态代码块
父类静态代码块 ->子类静态代码块 ->父类非静态代码块 -> 父类构造函数 -> 子类非静态代码块 -> 子类构造函数。
public class Father {
static {
System.out.println("父类静态代码块");
}
{
System.out.println("父类非静态代码块");
}
public Father(){
System.out.println("父类构造函数");
}
}
public class Son extends Father{
static {
System.out.println("子类静态代码块");
}
{
System.out.println("子类非静态代码块");
}
public Son(){
System.out.println("子类构造函数");
}
public static void main(String[] args) {
Son son = new Son();
}
}
结果为:
父类静态代码块
子类静态代码块
父类非静态代码块
父类构造函数
子类非静态代码块
子类构造函数

浙公网安备 33010602011771号