开始下回分解

面向对象

  • 1-继承
  • 2-封装
  • 3-多态

1-继承

继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

Java 中通过 extends 关键字可以申明一个类是从另外一个类继承而来的

继承类型
需要注意的是 Java 不支持多继承,但支持多重继承。

继承的特性

  • 子类拥有父类非 private 的属性、方法。
  • 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
  • 子类可以用自己的方式实现父类的方法。
  • Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 B 类继承 A 类,C 类继承 B 类,所以按照关系就是 B 类是 C 类的父类,A 类是 B 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。
  • 提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)。

继承关键字
接口
一个接口对方法的实现

单继承和多继承

继承类与类之间的耦合度
强依赖:必须的
继承关系:最好不要超过五重

extends关键字
在 Java 中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类,所以 extends 只能继承一个类。

implements关键字
使用 implements 关键字可以变相的使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口(接口跟接口之间采用逗号分隔)。

super 与 this 关键字
super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。
this关键字:指向自己的引用。

final关键字
final 关键字声明类可以把类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写:
实例变量也可以被定义为 final,被定义为 final 的变量不能被修改。被声明为 final 类的方法自动地声明为 final,但是实例变量并不是 final
构造器

子类是不继承父类的构造器(构造方法或者构造函数)的,它只是调用(隐式或显式)。如果父类的构造器带有参数,则必须在子类的构造器中显式地通过 super 关键字调用父类的构造器并配以适当的参数列表。
如果父类构造器没有参数,则在子类的构造器中不需要使用 super 关键字调用父类构造器,系统会自动调用父类的无参构造器。

多继承:让一个类可以去扩展一些完全不相关的东西

2-封装

封装的优点:

    1. 良好的封装能够减少耦合。
    1. 类内部的结构可以自由修改。
    1. 可以对成员变量进行更精确的控制。
    1. 隐藏信息,实现细节。

3-多态

多态是同一个行为具有多个不同表现形式或形态的能力。
多态就是同一个接口,使用不同的实例而执行不同操作,

多态的优点

    1. 消除类型之间的耦合关系
    1. 可替换性
    1. 可扩充性
    1. 接口性
    1. 灵活性
    1. 简化性
  1. 重载 -在同一个类中方法名相同,参数,反回类型不相同的方法(返回类型是附带的)
    好处:同一个方法名, 处理不同的事情(根据是不是带带参数)
    如果反回类型不相同,参数相同是错误的
package duotai;public class Student {public void study(){System.out.println("study...");}
//    public Object study(){return  new Object();};public void study(int id){if (id==10){System.out.println("mawei study......");}}public void study(int id,Object book){if (id==10 && book !=null){System.out.println("yikai study"+ book);}}
}
  1. 重写 -在子类中,写一个同名的方法覆盖父类的方法
    一个类出现与父类中相同名的方法,默认调用子类的方法。

里氏代换
-通过子类去创建父类的对象
任何父类对象可以出现的地方,你都可以用子类对象可以去替代
好处:可以用一个拓张之后的类,去执行指定的任务(可以使用不同的实现类,去解决同一个问题)
通过子类去创建父类的对象

package duotai;public class Student {public void study(){System.out.println("study...");}
}package duotai;public class RunTest {public static void main(String[] args) {Student student = new Student();Student mawei = new Manwai();//
//        mawei.study();Student yikai = new YiKai();//
//        yikai.study();new RunTest().test(yikai);}public void test(Student stu){//不需要知道具体是哪个学生(见人说人话,见鬼说鬼话)stu.study();}}

今天学习结束啦✿✿ヽ(°▽°)ノ✿
有什么问题欢迎大家提出来,一起进步

世界灿烂盛大,欢迎回家 —— 《全球高考》

4-「季淳卿」面向对象(继承、封装、多态)详解案例相关推荐

  1. 2 -「季淳卿」 Redis 字符串+哈希

    这里写目录标题 String(字符串) Hash(哈希) 1 -「季淳卿」 Redis基本介绍和String练习 开始下回分解 String(字符串) 代码如下: #-- 1 strlen key 查 ...

  2. 「季淳卿」零基础学习 MyBatis-Plus-springBoot(笔记总结)

    hello,大家好.这里是季淳卿,━(`∀´)ノ亻!,MyBatis-Plus-springBoot 零基础学习笔记总结 文末有代码和.md文件可以下载(小伙伴们可以自取) MyBatis-Plus- ...

  3. 「季淳卿」MyBatis学习总结

    hello,大家好.这里是季淳卿,━(`∀´)ノ亻!,MyBatis 学习笔记总结 MyBatis

  4. java 继承 封装 多态 详解

    1.继承 1.1子类能够继承父类的哪些成员? 1.1.1 public 成员 1.1.2 protected 成员 1.1.3 同一个包中:缺省访问类型的成员 1.1.4 打死不能继承private成 ...

  5. 发那科机器人零点找回_「发那科」FANUC机器人零点复归详解

    原标题:「发那科」FANUC机器人零点复归详解 今天整理一篇关于FANUC机器人:零点复归内容,希望对大家有所帮助! 1概述 零点复归机器人时,需要将机器人的机械信息.与位置信息同步,来定义机器人的物 ...

  6. C# 面向对象编程【多态详解】

    C# 面向对象编程[多态详解] 文章目录 C# 面向对象编程[多态详解] 1. 里氏转换 2. 多态 2.1 虚方法 3.2 抽象类 3.3 接口 1. 里氏转换 1).子类可以赋值给父类 2).如果 ...

  7. Java学习系列(四)Java面向对象之修饰符、封装、继承、多态详解

    今天内容比较多,直接步入正题吧. 类和对象的定义 类是现实世界或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起.而对象是具有类类型的变量,存在于堆内存中.类是对象的抽象,而对 ...

  8. Java面向对象之修饰符、封装、继承、多态详解

    类和对象的定义 类是现实世界或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起.而对象是具有类类型的变量,存在于堆内存中.类是对象的抽象,而对象是类的具体实例.类是抽象的,不占 ...

  9. python面向对象编程指南 脚本之家_Python面向对象编程之继承与多态详解

    本文实例讲述了Python面向对象编程之继承与多态.分享给大家供大家参考,具体如下: Python 类的继承 在OOP(Object Oriented Programming)程序设计中,当我们定义一 ...

最新文章

  1. 2012到2020主要的CNN架构总结
  2. java基本数据类型自动转包装类,Java String和基本数据类型之间的转换(包装类)
  3. vue 怎么样不重复往数组里插入数据_Vue.js在数组中插入重复数据的实现代码分享...
  4. Linux 中内核级加强型火墙的管理
  5. mysql单表简单排序查询
  6. IO流--buffer
  7. JavaScript OO不XX 学习总结
  8. How to use the Feathers ScreenNavigator component
  9. 项目文件3 项目范围说明书、项目团队派工单、质量控制测量结果、质量测量指标、质量报告、需求文件、需求跟踪矩阵、 资源分解结构
  10. 云计算现在好就业吗?薪资怎么样?
  11. 电脑各种故障排除集锦
  12. 浏览器标准模式和怪异模式之间的区别是什么——整理自网页
  13. 基于SpringBoot+Thymeleaf兼职招聘网站
  14. JS实现RGB,HSL,HSB相互转换
  15. 怎样将收藏的网址导入到搜狗账号中
  16. 第三方互联网支付的主要类型
  17. [golang]简单文件上传服务
  18. java json asc排序_按ASCII码给json对象排序
  19. Android Studio 安装与配置
  20. 图书馆学专业学c语言吗,图书馆学专业介绍及考研院校排名

热门文章

  1. Android 动画介绍及自定义3D动画效果的基本使用
  2. 12306网购火车票技巧春节订票技巧
  3. 小明的保险箱(暴力破解zip)-学习笔记
  4. Polarr Photo教程:打造艳丽夕阳效果
  5. 招聘动物语言翻译师? 一场保卫雨林的AI攻坚战正在拉开序幕
  6. GIO (Gnome Input/Output)
  7. 跨端扫码确认实现Web登录(扫二维码登录)
  8. 董卫凤:厚积薄发成就璀璨人生
  9. java 把文件打包成zip文件_java将文件或是文件夹打包压缩成zip格式
  10. Potplayer使用madvr