JAVA 基础8-面向对象3
一.类的多态:父类的引用指向子类的对象
在同一个方法中, 参数的类型相同,但是由于运行的环境不同而表现出来的不同的形式。
通常使用方法的重载(overload)和重写(override)实现类的多态性,在方法的重载中根据调用参数的个数和类型区分具体执行的是哪个方法。
例:Dog类继承了Animal类,则可以写成:Animal dog = new Dog();
二.对象转型
向上转型:是隐式转换,例如将猫类转换成动物类;
向下转型:是显示转换,例如将动物类转化成猫类,前提是这个动物指向猫;
三.instanceof 关键字
用来判断某个变量是否是一种类型;左边写变量,右边写类型,返回结果是boolean型;
父类的对象不能访问子类中特有的成员(成员变量, 成员方法),例如狗的子类中有摇尾巴,定义为动物类的狗是不能调用这个方法的,如果要访问需要将该狗显示转换;
四.抽象类(修饰符关键字abstract)
1.在一个类中, 某个方法不需要实现, 完全交给子类去实现, 这个方法需要被声明为抽象方法,花括号需要去掉。
2.含有抽象方法的类, 必须被声明为抽象类,抽象类可以没有抽象方法,即使没有抽象方法,也不能被实例化。
3.抽象类无法被实例化(无法使用new)。
4.抽象类的子类没有能力去实现父类的抽象方法的时候,自己也需要被声明为抽象类, 没有实现的方法声明为抽象方法,等待下一个子类去实现。
作用:使用抽象类的方法实际是定义了一种规则,指向的子类都要去实现这个规则,在维护时只需要修改指向就可以。
五.接口类(关键字:interface 即替换掉了class)
1.接口是一种特殊的抽象类,只能定义方法;类可以实现接口,关键字 implements;接口可以继承接口,关键字 extends;
2.接口也是一种引用类型,例如学生类实现了歌手类接口,就可以创建一个歌手类引用指向学生类对象;
3.接口与抽象类的区别在于抽象类只能单继承,而接口可以同时被实现多个,用逗号隔开;
4.接口中的方法默认修饰符为public,接口中定义的成员变量整个实现类都可以访问,默认修饰符public static final;
5,实现类在实现接口时,如果该接口同时继承了父类接口,也需要实现该父类接口中的方法;
6.接口中的方法如果没有在实现类中全部实现,该类也要被声明为抽象类,即普通类需要全部实现;
7.当实现类同时实现多个接口时,需要避免接口中方法重名的情况;
六.其他
package:包 ,用来解决类名重名的现象;
import:引用 不同的包中的类引用时需要使用;
七.权限修饰符
作用范围如图:
在不同包下面能够访问的权限修饰符只有: pulbic 与protected,但是 protected 必须要有继承的关系才能够访问。
转载于:https://www.cnblogs.com/wyc1991/p/8996944.html
JAVA 基础8-面向对象3相关推荐
- Java基础-初识面向对象编程(Object-Oriented-Programming)
Java基础-初识面向对象编程(Object-Oriented-Programming) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Java是一门面向对象的程序设计语言.那么什 ...
- Java基础之面向对象的概念 继承---组合----枚举类
Java基础之面向对象的概念 继承---组合----枚举类 本章作为面向对象概念的最后一篇,但是作为一名java程序员在面向对象的这条路上还很长. 一.继承与组合简介 继承是实现类重用的重要手段,但是 ...
- Java基础篇--面向对象(Object Oriented)
Java基础篇--面向对象(Object Oriented) 1. 面向对象概念 1.1 什么事面向对象 1.2 理解面向对象 1.3 面向对象的特点 1.4 面向对象开发设计特征 2. 类与对象 2 ...
- 【Java基础】面向对象(三)
[Java基础]面向对象(三) 一.多态 概念 引用类型转换 二.Object类 概述 常用方法 三.抽象类 抽象类与抽象方法的定义 注意事项 四.接口 概述 接口定义 含有抽象方法 含有默认方法和静 ...
- JAVA基础学习--面向对象
JAVA基础学习–面向对象 1.面向对象与面向过程: 面向过程:就代表从头到位,每一步都需要我们来完成,例如洗衣服,首先收拾脏衣服.接上水.到洗衣液.搓.倒水.拧干.晾晒.每一步都需要我们来完成. 面 ...
- 一文带你深入理解【Java基础】· 面向对象编程(下)②代码块、final和abstract
写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...
- java基础(一)-面向对象思想
前言 java是一门面向对象的语言,在学习java前,先要理解面向对象这个概念,区别于c这类的面向过程语言,面向对象有着什么一样的特点呢?先上一张思维导图吧: 对象 什么是对象 问题空间中的元素及其在 ...
- JAVA基础:面向对象的例外处理
为初学者而著! Java基础是初学者的起点,是帮助你从小白入门到精通必学基础课程! B站最新录制Java300集>>> 适合准备入行开发的零基础员学习Java,基于最新JDK13 ...
- Java基础(08) 面向对象
Java基础(八)-- 面向对象 面向对象(Object Oriented Programming, 简称OOP )是Java基础学习的重点,必须掌握每个细节,接下来对面向对象的学习主要围绕以下三 ...
- JAVA基础语法——面向对象思想
Java基础语法 前言 一.面向对象思想 1.面向对象(OOP)概述 2.面向对象三大特性五大原则 二.类和对象 1.对象和类的概念 2.对象的特征 3.构造方法 3.This关键字 4.static ...
最新文章
- AI一分钟 | 华米发布全球首款可穿戴AI芯片;亚马逊年底上线至少8款Alexa设备
- 【系统缓慢、CPU 100%、频繁Full GC问题】的定位排查思路!
- 如何在Author中加载SDE栅格图层?
- 史上最大的实体关系抽取数据集!清华大学自然语言处理团队发布 FewRel...
- java运行报错NoClassDefFoundError: com/fasterxml/jackson/databind/JsonNode的解决方案
- 计算机研究生怎样提高英语水平,英语对计算机专业的重要性及如何提高英语水平...
- Linux下动态库使用小结
- 【Python】这些Python骚操作,你值得拥有
- 只有单杀技能的飞鸽传书
- PCL学习(3)——kdtree搜索(error C2079: “pcl::KdTreeFLANN::param_radius_)
- 优麒麟 mysql_优麒麟18.10新特性预览—生物识别
- 内嵌式串口转WiFi模块
- sprintf()函数的用法
- 使用Access-Control-Allow-Origin解决跨域
- win10系统如何telnet服务器,win10专业版官网系统如何开启telnet服务的办法
- 用python预测小孩的身高_Python 孩子身高预测
- 安装mediawiki维基百科
- win7台式计算机型号怎么查,win7系统电脑查看主板型号的四种方法
- 从黑暗到光明,LED照明演变史知多少?内有彩蛋
- 为什么女程序员那么少,我觉得程序员应该是最适合女性的职位