java中的继承 和多态。
package com.aaa.zxf.ajax.test; /**
*一、 java 中的继承和多态。
*
* 继承的特性?
* 1.实现继承的方式
* A 如何建立继承关系(一个类继承于 另一个类 子类 继承 父类 )
*
* 【修饰符】 class 类名(子类) extends 类名(父类){
*
* }
*
* B 子类继承父类 就可以使用父类的成员变量和方法(局限性 权限修饰需要满足)
* 注意: 面试题 私有的属性和方法能不能被继承?
* 答案:不能 因为无法调用
* 能 但是无法调用
*
* 2.继承的关系
* 在java中 类和类之间是单继承关系(一个类只能继承一个父类)
*
* 类 和 类 单继承
* 类 和 接口 多实现
* 接口和 接口 多继承
*
* 3.默认的继承
* 如果一个类没有写 extends 默认继承于 Object(鸡肋 基类)
*
*
* 二、 方法的重写
* 子类有一个方法 和 父类一模一样 称之为 子类重写了父类的方法
*
* 思考题:为什么要重写?
* 因为 有可能父类的方法,满足不了子类的需求 所以子类需要对父类的方法进行重写。
*
* 如何验证是否对父类的方法重写成功呢?
* 万一 父类的使getObejct 子类重写 get0bject()
* 在方法的上面添加 @Override 注解 这个注解或帮我们验证是否重写成功 如果不成功会报错 * 三、java 中的多态
*
* 1.多态就是多种状态 (何为多种状态)
*
* 2.如何产生多态?
* 多态的分类分为 继承多态 和 接口多态。
*
* 继承多态:父类的类型 对象名 = new 子类();
*
* Animal a = new Dog();
* (用父类的类型 引用子类的对象)
*
* 接口多态: 接口类型 对象名 = new 实现类();
* (用接口类型 引用实现类的对象)
*
* 3.多态的解读
* 解读1: 代码分成两个时期 :编译时期 运行时期
* 多态相当于在不同的时期 状态是不一样的。
*
* 4. 为什么要有多态?
*
* 解耦:解除(降低)代码之间的耦合性 (代码侵入 )
* 我们编写程序的愿景:高内聚 低耦合
* 多态这个知识点就是用来 解耦的。
*
* 四、 控制反转 和 IOC DI 注入。
*
* 连接:有介绍。。
* https://blog.csdn.net/jisuanjiguoba/article/details/81532965 */
public class JavaJiCheng01 {
public static void main(String[] args) { Animal animal = new Animal();
animal.run(); // animal 调用自己的 run方法 /**
* 多态开始
*
* new 的是什么类型 就说明这个对象是什么
* 调用方法的时候 是根据对象的真实类型去调用
*/ String ah= "sdf"; StringBuffer a =new StringBuffer(); //前父后子 animal01 两个状态
Animal animal01 = new Dog();
animal01 = new Cat(); animal01.run(); // 运行时 调用的是 cat 的run 方法。。
animal01.name = "二哈"; // 调用父类的公共属性 }
} // 在动物类中声明 id 和 name 创建一个类 Aniaml类 动物类
class Animal{
public int id;
public String name;
private int age; void run(){
System.out.println("动物要吃饭");
}
} // 让狗和猫继承与 动物类(狗单独添加food 猫单独添加color)
class Dog extends Animal{
public String food; @Override //添加这个注释 未报错 重写成功。
void run(){
System.out.println("狗吃骨头");
} } class Cat extends Animal{
public String color; @Override
void run(){
System.out.println("猫吃鱼");
}
} class Pig{
void eat(){
System.out.println("pig eat food");
}
} /**
* 将pig对象 当成参数传到people的 feed函数中。 再去调用 eat 函数
*
* 模拟 控制反转 IOC di 依赖注入
* 在一个类中 通过参数获取另一个 类的对象。
*/ // 人类 喂养 猪的方法
class Pepple{
void feed(Pig pig){
pig.eat();
}
}
java中的继承 和多态。的更多相关文章
- 简谈java 中的 继承和多态
继承(extends) : 1:object 是所有类的父(基)类. 2:子类继承父类所有的内容除了(private修饰的和构造方法). 3:子类在手动创建构造方法时,必须调用父类构造方法. 4:在J ...
- 2017.10.10 java中的继承与多态(重载与重写的区别)
1. 类的继承 继承是面向对象编程技术的主要特征之一,也是实现软件复用的重要手段,使用继承特性子类(subclass) 可以继承父类(superclass)中private方法和属性,继承的目的是使程 ...
- Java中的继承和多态
1. 什么是继承,继承的特点? 子类继承父类的特征和行为,使得子类具有父类的各种属性和方法.或子类从父类继承方法,使得子类具有父类相同的行为. 特点:在继承关系中,父类更通用.子类更具体.父类具有更 ...
- 【Java学习笔记之十六】浅谈Java中的继承与多态
1. 什么是继承,继承的特点? 子类继承父类的特征和行为,使得子类具有父类的各种属性和方法.或子类从父类继承方法,使得子类具有父类相同的行为. 特点:在继承关系中,父类更通用.子类更具体.父类具有更 ...
- Java中的继承、封装、多态的理解
Java中的继承.封装.多态 继承的理解: 1.继承是面向对象的三大特征之一,也是实现代码复用的重要手段.Java的继承具有单继承的特点,每个子类只有一个直接父类. 2.Java的继承通过extend ...
- java中的继承与oc中的继承的区别
为什么要使用继承? 继承的好处: (1)抽取出了重复的代码,使代码更加灵活 (2)建立了类和类之间的联系 继承的缺点: 耦合性太强 OC中的继承 1.OC中不允许子类和父类拥有相同名称的成员变量名:( ...
- 【JAVA零基础入门系列】Day13 Java类的继承与多态
继承是类的一个很重要的特性,什么?你连继承都不知道?你是想气死爸爸好继承爸爸的遗产吗?(滑稽) 开个玩笑,这里的继承跟我们现实生活的中继承还是有很大区别的,一个类可以继承另一个类,继承的内容包括属性跟 ...
- c#中的里氏转换和Java中强制类型转换在多态中的应用
在c#中: 注意: 子类并没有继承父类的构造函数,而是会默认调用父类那个无参数的构造函数. 如果一个子类继承了一个父类,那么这个子类除了可以使用自己的成员外,还可以使用从父类那里继承过来的成员.但是父 ...
- 关于java中的继承
我们都知道Java中的继承是复用代码.扩展子类的一种方式,继承使得Java中重复的代码能够被提取出来供子类共用,对于Java程序的性能以及修改和扩展有很大的意义,所以这是一个非常重要的知识点. 那么对 ...
随机推荐
- 【LeetCode】139. Word Break 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- 【LeetCode】874. Walking Robot Simulation 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 模拟 日期 题目地址:https://leetcod ...
- 【LeetCode】91. Decode Ways 解题报告(Python)
[LeetCode]91. Decode Ways 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fux ...
- 【LeetCode】833. Find And Replace in String 解题报告(Python)
[LeetCode]833. Find And Replace in String 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu ...
- 【LeetCode】137. Single Number II 解题报告(Python)
[LeetCode]137. Single Number II 解题报告(Python) 标签: LeetCode 题目地址:https://leetcode.com/problems/single- ...
- 第十五个知识点:RSA-OAEP和ECIES的密钥生成,加密和解密
第十五个知识点:RSA-OAEP和ECIES的密钥生成,加密和解密 1.RSA-OAEP RSA-OAEP是RSA加密方案和OAEP填充方案的同时使用.现实世界中它们同时使用.(这里介绍的只是&quo ...
- HMS Core电商与游戏行业解决方案,全流程赋能开发者创新
2021年12月29日,"华为云&华为终端云服务创新峰会2022"在北京柏悦酒店成功举办.华为HMS Core电商与游戏行业解决方案亮相本次峰会的线下展区,为行业开发者们解 ...
- [数学]高数部分-Part VI 重积分
Part VI 重积分 回到总目录 Part VI 重积分 二重积分的普通对称性 二重积分的轮换对称性(直角坐标系下) 二重积分直角坐标系下的积分方法 二重积分极坐标系下的积分方法 二重积分中值定理 ...
- 中华古诗词知识图谱之实体关系构建&导入neo4j数据库
实体分析 诗名实体 属性 包含:作诗时间,诗名,内容,翻译,背景. 关系 实体1 关系 实体2 诗名 形式 诗词形式 诗名 作者 诗人 诗名 分类 类别 诗名 词牌名 词牌名 诗名 曲牌名 曲牌名 诗 ...
- 关于C#的decimal浮点类型转化成字符串时末尾存在多个0
首先,对于浮点类型,double和float存在精度丢失问题,这一点在之前的一篇博文中有提到(C# double类型精度丢失问题),于是,一般时候推荐大家使用decmal,特别是涉及到一些金融计算时, ...