JAVA基础: 面对对象封装、继承的理解,方法的重载和重写、抽象类、访问修饰符

面向对象的三大特性
封装 继承 多态
封装是面向对象三大特性之一
封装 继承 多态是面向对象三大特性。
封装是把属性私有化,对外提供可以方法的方法!
封装:
提高代码复用性
提高安全性
把细节隐藏,对外提供可以访问的方法,供对象调用
成员变量和局部变量同名的时候。this关键字使用可以避免变量重名导出调用不确定的问题。
this关键字都是调用本类的属性在实现属性私有化时常用
私有化后对外提供可以访问的方法(getter setter方法)
继承****的概念和特点
子类能拥有父类的属性
子类访问权限不能小于父类
重写是在子类可以重写父类的方法
访问权限不能小于父类,返回值类型相同 方法名相同参数列表相同
重载一般在同一个雷利多个同名不同参的方法
1.1 继承的好处
继承提高了代码复用性,提高了开发效率。
继承产生父子关系,为多态提供前提
2.继承后子类和父类中的成员关系
子类和父类成员属性同名时,想要调用父类的成员属性用super关键字
子类和父类成员方法同名时,是方法的重写,想要在方法里调用父类的同名方法需要用super
调用
父类 superClass
子类 subClass
3.方法重写和方法重载的区别
3.1 重写方法:
重写是有父子类关系,子类重写书写父类的方法
访问权限不能小于父类,返回值类型相同,方法名相同,参数列表相同
3.2 重载方法:
一般在同一个类里面,多个同名不同参方法
同名:方法名相同
不同参:参数数据类型不同,参数个数不同,参数顺序不同
和返回值类型无关
重载和重写的比较
a.修饰符:

  • 重载对两个方法没有任何要求
  • 重写对权限修饰符有要求,子类的方法的权限>=父类的方法的权限
  • b.返回值类型:
  • 重载对两个方法返回值类型没有要求
  • 重写要求子类的方法和父类中被重写的方法返回值一致
  • c.方法名:
  • 重载要求两个方法方法名必须一致
  • 重写要求子类的方法和父类中被重写的方法方法名一致
  • d.形参列表:
  • 重载要求两个方法的形参列表必须不同(形参类型不同,形参个数不同,形参类型顺序不
    同)
    重写要求子类的方法和父类中被重写的方法的形参列表一致
    *** 五、抽象类**
    1.抽象类特点
    1、抽象类和抽象方法都需要被abstract修饰。抽象方法一定要定义在抽象类中。
    2、抽象类不可以直接创建对象,原因:调用抽象方法没有意义。
    3、只有重写了抽象类中所有的抽象方法后,其子类才可以创建对象。否则该子类还是一个抽
    象类。
    之所以继承抽象类,更多的是在思想,是面对共性类型操作会更简单。
  1. 抽象类的细节问题
    1、抽象类一定是个父类?
    是的,因为不断抽取而来的。
    2、抽象类中是否可以不定义抽象方法。
    a.修饰符:
  • 重载对两个方法没有任何要求
  • 重写对权限修饰符有要求,子类的方法的权限>=父类的方法的权限
  • b.返回值类型:
  • 重载对两个方法返回值类型没有要求
  • 重写要求子类的方法和父类中被重写的方法返回值一致
  • c.方法名:
  • 重载要求两个方法方法名必须一致
  • 重写要求子类的方法和父类中被重写的方法方法名一致
  • d.形参列表:
  • 重载要求两个方法的形参列表必须不同(形参类型不同,形参个数不同,形参类型顺序不
    同)
  • 重写要求子类的方法和父类中被重写的方法的形参列表一致
    抽象方法定义的格式:
    public abstract 返回值类型 方法名(参数);
    抽象类定义的格式:
    abstract class 类名 {
    }
    是可以的,那这个抽象类的存在到底有什么意义呢?不让该类创建对象,方法可以直接让子类去
    使用
    3、抽象关键字abstract不可以和哪些关键字共存?
    private:私有的方法子类是无法继承到的,也不存在覆盖,而
    abstract和private一起使用修饰方法,abstract既要子类去实现这个方法,而private
    修饰子类根本无法得到父类这个方法。互相矛盾
    六、访问权限修饰符
    public 访问权限最大
    private 访问权限最小,private只能本类中访问
    修饰符 同一类中 同一包中不同类 不同包中的无关类 不同包中的父子类
    public Y Y Y Y
    protected Y Y Y N
    default Y Y N N
    private Y N N N

你可能感兴趣的:(JAVA基础)