封装、继承、super、方法重写

153 阅读2分钟

封装:

属性私有(private),get/set。 即:如果将属性设置为private,则不能直接调用到该属性,需要设置get/set方法

package com.oop.demo3;

public class Student {

    //私有属性 private
    private String name;//名字
    private int id;//学号
    private char sex;//性别
    private int age;//年龄

    //提供一些获取private属性的方法
    //set  get 方法

    //get方法:获取
    public String getName() {
        return name;
    }
    
    //set方法:设置
    public void setName(String name) {
        this.name = name;
    }
    
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public char getSex() {
        return sex;
    }

    public void setSex(char sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    
}

set/get方法快捷键:alt+insert

封装的意义:

  • 提高程序的安全性,保护数据。
  • 隐藏代码的实现细节。
  • 统一接口。
  • 系统可维护性增加了。

继承:extends

  1. 继承是类和类之间的一种关系。
  2. 继承关系的两个类,一个是父类,一个是子类。
  3. JAVA类只要单继承,没有多继承。
  4. 子类继承父类的话,正常属性和方法都是public。如果属性是private,可以通过封装的思想来解决。
  5. Java中,所有类默认继承Object这个类。

如: 父类:

子类:

运行调试:

结果:

查看继承关系快捷键:ctrl+H

super

注意点:

  1. super调用父类的构造方法,必须在构造方法的第一行
  2. super必须只能出现在子类的方法或者构造方法中
  3. super和this不能同时调用构造方法

super vs this:

代表的对象不同:1.super:代表父类对象的应用 2.this:本身调用这个对象

前提:1.super:只有在继承条件下才可以使用 2.this:没有继承也可以使用

构造方法:1.父类构造:super(); 2.本类构造this();

代码举例:

结果:

方法重写:需要有继承关系,子类重写父类的方法!

  1. 方法名必须相同
  2. 参数列表必须相同
  3. 修饰符:范围可以扩大但不能缩小:public>protected>default>private
  4. 抛出的异常:范围可以被缩小但不能被扩大:ClassNotFoundException --> Exception(大)
  5. 子类的方法和父类必要一致,方法体不同!!!
  6. 重写快捷键:alt+insert
  7. 重写适用的方法:非静态方法。如果是静态方法,方法的调用只和左边定义的数据类型有关。

代码举例:

结果: