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中数组的声明

image

以下三条均正确
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();
	}
}

结果为:
	父类静态代码块
    子类静态代码块
    父类非静态代码块
    父类构造函数
    子类非静态代码块
    子类构造函数

posted @ 2022-01-21 15:51  YR_3  阅读(30)  评论(0)    收藏  举报