天天看点

JAVA OOP---继承

继承

Java oop的另一个重要的知识点,是Java面向对象编程技术的一块基石,它允许创建分等级层次的类。继承是一种高级封装,而封装就是OOP的一个核心思想;

继承就是子类继承父类的特征和行为,这就要求在创建父类的特征时要能概括所有子类。反过来就是说子类有父类的特征,而每个子类又可以有自己不同于父类的特征。

注意:每个子类只能继承一个父类(后面要说的接口就可以实现多个)

(1)子类继承父类其实就是在子类创建时,在子类对象中创建了一个父类的对象。(这个对象是不外显的)

(2)子类不可以继承父类的一些内容

①私有的 private修饰的内容

②构造方法 Constructor (子类中只是调用,不是继承)

③非同包父类受保护类型 (可以用producted访问)

(3)访问修饰符和包进行的访问权限控制

JAVA OOP---继承

(4)在系统默认的调取顺序中:

构造方法<普通的代码块<静态的代码块

输出是按:

父类静态代码块
子类静态代码块
父类普通代码块
父类构造方法
子类普通代码块
子类构造方法
           

(5)static:(静态)

①被static修饰的属性和方法称为类属性与类方法,无须对象,通过类名就可以访问。

②但是static在JVM 启动装载字节码文件过程中就会先创建所有的静态内容。当JVM关闭时static内容才会销毁。(存在时间在长,占用空间,这不符合OOP的思想)

③只有在使用频次高,且当前工程中许多类要使用时,我们才会选择将这个内容设定成静态。

④注意:静态方法只能访问静态属性和静态方法

(6)重写、重载

①重载:同一类中名称相同参数不同的方法

public void student(int a,boolean b){}
public void student(int a ){}
           

参数不同指的是参数列表的不同,在参数数量相同时,看参数类型;在参数类型相同时就看参数的数量。

②重写:子类重写父类同名、同参、同返回值的方法。

class Animal{
  public void move(){
    System.out.println("动物可以移动");
   }
}

class Dog extends Animal{
   public void move(){
   System.out.println("狗可以跑和走");
 }
}
           

这里的子类继承了父类,在调用move()方法时,参数列表相同(都为空),但方法中的代码块是不同的。