0713作业

1:代码块是什么?代码块的分类和各自特点?
  用{}括起来的一段代码叫做代码块
  代码块包括:构造代码块 静态代码块 局部代码块 以及同步代码块
    构造代码块存在于类中方法外,只要创建对象就会先于方法调用
    静态代码块也是存在于类中方法外,但是加有修饰语句static 用于给类初始化 最先执行,且只执行一次
    局部代码块存在于方法中,{}用来限定变量生命周期,遇到大括号就结束
2:静态代码块,构造代码块,构造方法的执行流程?
  静态代码块-->构造代码块-->构造方法 从左到右执行
3:继承概述
  让类与类之间产生关系,子类与父类的关系
4:继承的好处
  提高代码的复用性,(父类中写,子类中用,少写多用)
  提高代码的维护性
  产生类与类之间的关系,构造多态
5:Java中继承的特点
  只能有一个父类,一个父类可以有多个子类,但一个子类只能有直接的一个父类

  可以多层继承,可以一层层继承下去,成为间接的子类和父类(相当于生活当中的爷孙)

6:Java中继承的注意事项?以及我们什么时候使用继承?
  不能继承父类中的私有成员方法和成员变量.

  不能继承父类构造方法,但是可以用super()访问父类构造方法.

  两个类之间是一种属于的关系,可以使用继承.如动物与猫,猫属于动物,猫类可以继承动物类.水果与香蕉,香蕉属于水果,香蕉类可以继承水果类
7:继承中的成员访问特点
  A:成员变量
  在子类方法中访问一个变量
  B:成员方法
  在测试类中通过子类对象去访问一个方法

8:继承中构造方法的执行流程?假如父类没有无参构造方法,子类应该怎么办?
  继承中构造方法不会被继承,但是会被访问.

  子类中所有的构造方法都会默认访问父类中空参构造方法,
9:面试题:
方法重写和方法重载的区别?方法重载能改变返回值类型吗?
  Overload 为方法重载,在一个类中的多个方法名相同的方法,方法名相同,但是参数不同(参数个数或类型或顺序不同),

  不管返回值类型和修饰符是否一样,所以能改变返回值类型
  Override 为方法重写,是在子类中重写父类的方法,返回值一致

this关键字和super关键字分别代表什么?以及他们各自的使用场景和作用。
  this代表当前对象的引用,谁来调用我就代表谁
  super代表当前对象父类的引用
    调用成员变量时,this既调用当前对象成员变量,也调用父类成员变量(子类没有时);super调用父类成员变量
    调用成员方法时,this调用本类成员方法,也可以调用父类成员方法(子类没有时);super调用父类成员方法
    调用构造方法时,this只能调用本类构造方法,super调用父类构造方法
    原因是:除了构造方法不能继承,只要是非私有的成员变量和成员方法,父类都会继承给子类随便用
10:继承案例练习

class Demo_A{
public static void main(String[] args) {
C c1 = new C ("吴彦祖",35,"",2000000);
c1.show();
}
}
class A {
String name;
int age;
}
class B extends A {
String gender;
}
class C extends B {
int salary;

public C(String name,int age,String gender,int salary) {
this.name = name;
this.age = age;
this.gender = gender;
this.salary = salary;

}
public void show() {
System.out.println(name +" "+age+" "+gender+" "+ salary);
}
}

11:final关键字可以干什么?有什么特点?
  修饰类或变量 修饰后的类不能被继承 修饰后的变量会变成常量,只能被赋值一次
12:final关键字的面试题?
A:修饰局部变量
  修饰基本类型时,值不能被改变
  修饰引用类型时,地址值不能被改变,但对象中的属性可以改变
B:初始化时机
  显示初始化,或在对象构造完毕前

原文地址:https://www.cnblogs.com/zhangzheng1989/p/9306984.html