一、继承

1、概念

子类的共性
重用现有类并在此基础上进行扩展
public class 子类 extends 父类{}

2、继承中的成员访问

成员变量 成员方法
局部->本类中成员变量->父类中非私有成员变量 本类中方法->父类中非私有成员方法->object基类中非私有成员方法

3、方法重写

(1)、为什么要重写

父类的方法不能满足我们的需求,我们需要进行扩展。

(2)、怎么进行重写

子类中的方法名、方法权限、方法形参和父类一样,此时就产生了重写

(3)、重写的注意点

(1)子类只能重写父类的非私有方法。
(2)子类重写的方法权限要大于等于父类,为了避免出错,最好采用一样
(3)权限类型:public>protected>默认>pravite
(4)@Override 注解:标记一个方法,表面该方法为重写父类

4、this和super

(1)、this

this表示的是对象的引用

3、super

表示父类的引用
super.name//父类的name
super();//父类构造函数,用于子类的构造函数第一步
super.buy();//父类的buy方法

5、继承优缺点

优点:隔离了用和做,在一定程度上增加了代码的复用性(但是不建议用继承来提高复用性,可以用关联或者依赖)
缺点:增加了程序的耦合性。

二、多态

调用父类的方法执行子类的方法。
父类的行为在不同的子类上有不同的体现

1、多态前提

继承
方法重写
父类引用指向子类

2、成员访问

成员变量 成员方法
编译父类,执行子类,没有报错 编译父类,执行子类,子类没有执行父类,父类没有报错

3、优缺点

优点:代码复用性,扩展性
缺点:不能使用子类的特有成员

4、转型

(1)、向上转型,父类引用指向子类

(2)、向下转型,父类类型转变为子类,强行转换

07JAVA基础面向对象-继承/多态的更多相关文章

  1. Python设计模式 - 基础 - 封装 & 继承 & 多态

    面向对象的核心是对象,世间万物都可以看作对象,任何一个对象都可以通过一系列属性和行为来描述,可以包含任意数量和类型的数据或操作.类是用来描述具有相同属性和方法的所有对象的集合.类通常是抽象化的概念,而 ...

  2. C# 面向对象基础&封装&继承&多态&加深一下冒泡排序写法

    (一)面向对象是什么? 面向对象是一种编程思想 (二)为什么要用面向对象? 1.结构清晰 2.易于维护 3.方便扩展 (三)new一个对象是什么过程? 实例化构造函数创建对象的过程就是将类实例化的过程 ...

  3. day25 面向对象继承,多态,

    这两天所学的都是面向对象,后面还有几天也是它,面向对象主要有三个大的模块,封装,继承,多态,(组合),昨天主要讲了面向对象的命名空间,还有组合的用法,今天是讲的继承还有继承里面所包括的钻石继承,以及多 ...

  4. <python基础>封装,继承,多态,重写,重载

    什么是封装? 所谓的面向对象就是将我们的程序模块化,对象化,把具体事物的特性属性和通过这些属性来实现一些动作的具体方法放到一个类里面,这就是封装.封装是我们所说的面相对象编程的特征之一.除此之外还有继 ...

  5. C#基础|面向对象之多态

      什么是多态   一句话解释,同一种事物表现出的多种形态. 看完以后,应该还是蒙的,还是看代码吧.. 现有Person类,Student类,Teacher类 其中Person类是Student和Te ...

  6. C#基础-面向对象-继承

    继承 新建一个基类 对Person类3个字段进行重构->封装字段 效果如下: public string Name { get => name; set => name = valu ...

  7. python基础--面向对象之多态

    # 多态是指一类事物有多种行态, # 例如:动物有多种形态:人,狗,猫 # 他们有一些共同的特征:吃,喝,拉,撒 # 多态性是指在不考虑实例类型的情况下使用实例 # 对同一事物不同的类,对象有不同的响 ...

  8. Java基础——面向对象(封装——继承——多态 )

    对象 对象: 是类的实例(实现世界中 真 实存在的一切事物 可以称为对象) 类: 类是对象的抽象描述 步骤: 1.定义一个类 (用于 描述人:) ( * 人:有特征和行为) 2.根据类 创建对象 -- ...

  9. Java基础-面向对象第三大特性之多态(polymorphism )

    Java基础-面向对象第三大特性之多态(polymorphism) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.多态概述 多态是继封装,继承之后,面向对象的第三大特性,多态的 ...

随机推荐

  1. python里的内置函数你知道有多少个吗?

    Python 内置函数最全汇总: 1 abs() 绝对值或复数的模 2 all() 接受一个迭代器,如果迭代器的所有元素都为真,那么返回True,否则返回False 3 any() 接受一个迭代器,如 ...

  2. SpringCloud(六)学习笔记之Zuul

    Zuul 在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架.Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门 Hystrix+Ribbon(不使用Feign) ...

  3. js中string转map的方法

    例如: var r = "{'msg':'你好'}" ; var map = eval("("+r+")"); //r为String类型的数 ...

  4. SK-learn实现k近邻算法【准确率随k值的变化】-------莺尾花种类预测

    代码详解: from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split fr ...

  5. MySQL server has gone away(在执行sql的时候,莫名的报错)

    原文:https://cenalulu.github.io/mysql/mysql-has-gone-away/ MySQL Server has gone away报错原因汇总分析 原因1. MyS ...

  6. thinkphp--多个id查询

    $feedback_list = $feedback -> where( array("member_id"=>array("in", " ...

  7. WebLogic上的项目无法更新,删除项目缓存

    /root/bea/user_projects/domains/base_domain/servers/AdminServer/tmp/ /root/bea/user_projects/domains ...

  8. python的sqlalchemy框架

    先看一下sqlalchemy框架中的映射,sqlalchemy一共有三种映射方式:传统映射(classic).现代化映射(modern).自定义映射.在这里,只为大家讲一下classic映射和mode ...

  9. Apache2.4 根目录修改

    需要修改两个地方: 1.httpd.conf 中的 DocumentRoot 项 和 Directory 项 2.httpd-vhosts.conf 中的 DocumentRoot 项 网上找到的大部 ...

  10. codeforce 270B Multithreading

    B. Multithreading Emuskald is addicted to Codeforces, and keeps refreshing the main page not to miss ...