JAVA基础之继承和重写

一、继承

  • 特点:

    1. 一种类与类之间的关系
    2. 使用已存在的类的定义作为基础建立新类
    3. 新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类
    4. 父类无法访问子类中的特有成员
    5. 父类的构造方法无法被继承
  • 代码实现

    父类:

    class Animal{
        //公共属性和方法
    }
    

    子类:

    class Dog extends Animal{//只能继承一个父类
        //子类特有的属性和方法
    }
    class Cat extends Animal{
        
    }
    

二、重写

  1. 重载(在同一个类中)

    • 方法名相同,参数列表不同(参数顺序,个数,类型之中任何一个不同)
    • 返回值,访问修饰符不做限制
  2. 重写(在有继承关系的子类中)

    • 语法规则

      1. 返回值类型
      2. 方法名
      3. 参数类型,顺序和个数

      以上3点都要与父类相同

      1. 返回参数的限定符的范围必须大于或者等于之前的返回值范围
      2. 父类的构造方法不允许被重写
    • 改的就是父类方法的逻辑

    • 父类的属性(变量)也可以重写

    • 子类默认调用父类的无参构造

三、super

  • 作用

    使用super来引用父类的成分,用this来引用当前对象

    super与this不能并存

  • 使用方法

    1. 使用super()调用父类允许被访问的其他构造方法(如果不想默认调用父类的无参构造方法),但必须放在子类的构造方法的第一行

    2. 访问父类的成员方法

      super.print();
      
    3. 访问父类的成员属性

      super.name;
      

四、final

final +类;//表示该类没有子类
final +方法;//该方法不能被重写,但是可以正常被子类使用
final +方法内的局部变量;//一旦赋值后不允许被修改,只要在具体被使用之前进行赋值即可
final +类当中的成员属性;//除了声明的时候初始化以外,只能在构造方法或者构造代码块内初始化
static final+变量;//表示全局的不允许被修改的变量
  • 注意事项
    1. final不能用来修饰构造方法

五、Object类(所有类的父类

  • 类中经常被重写的方法
  1. equals()
  • 当继承Object中的equals方法时,比较的是两个引用是否指向(同一个对象)(即地址是否相同)-------java中的"=="也是比的地址
    
  •  当继承String中的equals方法时,比较的是两个字符串的(内容)是否相等
    
  1. toString()
  • 输出对象名时,默认会直接调用类中的toString()方法,输出对象的字符串表示形式(类型信息+@+地址信息)
    
Animal one=new Animal();
//下面两条语句的输出结果相同
System.out.println(one.toString());
System.out.println(one);

JAVA的API查询地址

猜你喜欢

转载自blog.csdn.net/qq_38338069/article/details/83217071