java学习日记---复习回顾、继承、抽象类模板

1.this关键字**
(1)代表当前对象的引用:
当前对象,成员方法有那个对象调用的,方法中的this就代表哪个对象(谁调用我,我指向谁)
(2)this关键字的应用:
a.在set方法中给同名的成员变量赋值
b.在构造方法给同名的成员变量赋值
2.匿名对象的使用
(1)匿名对象是不创建对象名的对象(int age=new Scanner(System.in).nextInt())
当一个类只使用一次时我们选择使用匿名类。
3.继承
(1)在一个已知类A的基础上,创建类B的过程,称之为继承。
类A为父类,基类,superClass.
类B为子类,派生类,subClass.
(2)格式.

public class Human{
        int age;
        String name;
        public void eat(){
           System.out.println("我吃西红柿");
             }
        public void sleep(){
           System.out.println("睡觉zzz");
             }
}
public class Student extends Human{
}
public class Teacher extends Human{
         double salary;
         public void teach(){
		     System.out.println("教书育人");
}
}
             
 (3)继承的好处
        a.提高代码重用性
        b.为多态提供前提
 (4)父类中不能被继承的内容
  a.父类构造方法不能被子类继承
    b.父类中的私有成员变量可以被继承,但是不能直接访问,可以通过get/set方法访问。
 (5)成员变量继承特点
        a.当父类成员变量和子类成员变量不同名时,访问成员变量是没有歧义的,写那个变量名就是访问哪个成员变量
        b.当父子类成员变量同名时,在子类中会根据就近原则,有先访问子类的成员变量
        c.想再子类中直接访问父类的同名成员变量时,可以用super关键字
        d.一旦被继承,子类会自动拥有父类的非私有成员变量
 (6)成员方法继承特点
        a.当父类成员方法和子类成员方法不同名时,访问成员方法是没有歧义的,使用哪个成员方法就是访问哪个成员方法
        b.当父子类成员方法同名时,在子类中会根据就近原则,有先访问子类的成员方法
        c.不能再main方法中使用super关键字调用父类的成员方法 但是可以在子类中使用super关键字调用父类的成员方法

4.方法的重写概念和应用
(1)重载(overload)
方法名相同,参数列表不同,叫做方法的重载
(2)重写(override)
a.子类中跟父类的方法名一样,方法体不一样的方法叫做方法的重写
b.当父类方法中的内容或功能不适用于子类是,使用方法的重写
5.@Override注解
加上注解,当重写出错时,会报错
6.方法重写的注意事项
a.方法重写是发生在子类和父类之间的关系
b.子类方法重写父类方法,必须要保证权限大于等于父类权限(一般来说,父类方法什么权限,子类方法也是什么权限)
c.方法重写,除了方法体其他的都要和父类一模一样(权限可以不一样,但是一般写同一个权限)
7.继承后的构造方法(super()和this())特点
(1)父类的构造函数无法在子类中被重写
(2)子类的任何构造方法的第一行,都有一行默认的super(),代表父类的无参构造函数,父类构造函数初始化后,在调用子类的构造函数。
(3)如果父类中只有有参构造而无无参构造会报错,需要在子类中手写super(参数)。
(4)super()和this()必须放在第一行,不能同时出现
(5)super和this调用父类和子类的哪个构造,由参数列表决定
(6)super调用父类的有参/无参构造,初始化继承父类的成员变量,this调用子类的其他构造方法。
8.java只支持单继承,但是支持多层继承
9.抽象类
(1)抽象方法
a.抽象方法中没有方法体

  public abstract void show(){}
  public abstract class Animals(){}
  (2)抽象类
      a抽象类中并不一定有抽象方法,但是含有抽象方法的类都是抽象类(一般来说抽象类中都有抽象方法)
      b.抽象类只能用来继承,不能创建对象
      c.子类继承抽象类有两种方法
          ①给子类也加上abstract修饰符(子类不能创建对象 不可取)
          ②重写父类的abstract方法可以解决
      d抽象类中也有构造方法,用于初始化成员变量。.
      e.抽象类也可以继承其他抽象类

你可能感兴趣的:(java学习日记---复习回顾、继承、抽象类模板)