子父类的构造函数
在子类的构造函数中,第一行有一个默认的隐式语句:super() 子类的实例化过程:子类中所有的构造函数默认都会访问父类中的空参数的构造函数。为什么子类实例化的时候要访问父类中的构造函数呢?
子类实例化细节
构造器 显示初始化什么时候完成 默认初始化 父类构造器 显示初始化 Person p = new Person(); 1、JVM读取.class文件,并加载进内存 2、堆内存开辟空间, 3、对对象属性进行默认初始化 4、调用构造函数进行初始化 5、在构造函数中,调用父类构造函数并初始化 6、对子类的属性进行显示初始化 7、对子类构造函数的特定初始化 8、初始化完毕,将值赋给引用变量 final关键字 类 方法 变量 修饰的类 不可以被继承 修饰的方法 不可以被覆盖 修饰的变量 只能赋值一次 变量名全部大写抽象类
abstract 方法以“;”结尾特点
1、方法只有声明,没有实现,需要使用abstract修饰,同时类也要被abstract 修饰 2、抽象类不可以被实例化。 3、继承的子类必须覆盖所有父类的抽象方法,才能被实例化。否者细节
1、抽象类有构造函数吗 有,用于给子类对象进行初始化 2、抽象类可以不定义抽象方法吗 可以 目的是不让该类不创建对象。例:AWT的适配器对象就是这种类 3、抽象关键字不可以和哪些关键字共存 private、static、final 4、抽象类和一般类的异同点 都是用来描述事物; 不同:描述事物的信息全和不全;有没有抽象方法;可不可以被实例化 5、抽象类一定是一个父类么? 是 需要子类覆盖其抽象方法接口
它里面的方法全是抽象方法,关键是interface; 1、常见的成员 全局常量、抽象方法,都有固定的修饰符,不写自动添加 public static final public abstract 接口的成员都是公共的权限实现 implements
接口不能实例化多实现
细节
避免了单继承的局限性 接口之间可以多继承,方法体是否重载特点
多实现、降低耦合、功能扩展 接口与抽象类的区别 相同点:都是抽取的概念 不同点: 1、抽象是继承关系,单继承 接口是实现关系,多实现 2、抽象类是is a 关系 接口是 like a 关系 3、抽象类中可以定义非抽象方法 接口的方法全是抽象方法,且有固定的修饰符