码迷,mamicode.com
首页 > 其他好文 > 详细

封装继承多态总结

时间:2018-11-03 12:28:49      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:imp   构造函数   提高   类构造   改变   nts   值类型   bsp   类的属性   

封装

  封装按照我个人的理解,

  • 将属性私有化,
  • 提供相应的getters和setters方法,
  • 重toString方法
  • 根据相关业务重载构造函数

  优点:

  • 屏蔽细节
  • 提高安全性

  在继承中涉及到构造方法,构造方法没有返回值类型,默认不写时JVM会默认加上无参构造器,如果要使用带参的构造方法,一定要写出无参构造方法,这其中涉及到方法的重载

  方法的重载

  在同一个类中,方法名相同,形参类型不同(个数或类型) ,与返回值类型和权限修饰符无关;

继承

  继承:在一个类可以继承另一个类的属性和方法,子类可以选择覆盖父类的方法,并在这个基础上扩展,可以继承一个普通类 抽象类 或接口;继承类通过extend 实现就接口通过implements实现

  抽象类

  抽象类是使用abstract修饰的类,其中会包含抽象方法, 抽象方法使用abstract修饰的方法,只有方法名,没有方法体;

  抽象类与抽象方法之间

   抽象类中可能会有抽象方法,一个类中有抽象方法那么这个类一定是抽象类;抽象方法存在与抽象类或接口

  抽象类也是类,有构造方法,但是不能实例化对象,其中同样有实例变量,实例方法

  如果一个抽象类的子类没有完全重写父类的抽象方法那么这个子类还是一个抽象方法,

  抽象类只能单继承,也就是说一个子类只有一个父类

  所有类的最终父类(超类,基类)都是Object,

  接口:

  使用interface 定义接口,其中包含抽象方法,可以使用implement实现多个接口,重写接口的抽象方法

  接口的特点

  • 接口的权限修饰符只有public和默认
  • 接口可以继承多个接口,但不能继承类
  • 接口不能变量,只能定义常量,默认会加上public static static
  • 接口中的方法不能使用private protect static final修饰编译会报错
  • 在JDK1.8后接口中可以定义实例方法 使用default修饰方法

  重写

  在继承条件下,子类根据需求重写父类的方法

  重写的要求:

  • 重写的方法名与父类的一致
  • 参数类表相同
  • 返回的参数类型相同或是其子类
  • 权限修饰符不能缩小

修饰符问题

  abstract 不能修饰属性和构造方法, 不能同时与private static final修饰一个方法或类

  final 修饰的类不能被继承,修饰方法不能被重写,修饰属性是常量不能改变,不能修饰构造方法

  static 修饰的方法不能重写,但是能继承,

  private 凡是private修饰的属性或方法能继承

  默认的权限修饰的属性或方法 可以继承 但必须在同一包的范围内 可以修饰抽象类和接口 接口中不写为public abstract 

  protected 不能修饰抽象类和接口,可以抽象类中的抽象方方法, 接口中的权限修饰符只能是public abstract 

  构造方法不能继承,只能通过子类构造方法默认调用或使用super调用

多态

  在继承条件下,具有多种行为表现的集合特征

向上转型

  父类 object=new 子类();   在继承的条件将子类对象赋给父类对象,将父类的引用指向子类对象,

  调用时:属性调用的是父类的属性,如果子类重写了父类的的方法,调用的是子类的方法,否则调用的是父类的方法,不能调用子类新增的方法

向下转型

  向下转型的前提是,父类已经向上转型,否则会编译错误,

  父类 object=new 子类()

  子类 subobj=object;

 

我目前还在学习,在学习期间努力每周写一篇,以上部分为个人笔记和网络搜索整理,由于学习任务多,加上个人语言组织能力不强,如果有错误请路过的大佬指出,也请见谅!!

  

 

封装继承多态总结

标签:imp   构造函数   提高   类构造   改变   nts   值类型   bsp   类的属性   

原文地址:https://www.cnblogs.com/codeing-boy/p/9900132.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!