Java小白学点东西(基础)(8)
1Java三大特性为
java三大特性:封装 继承 和多态
1.1生活中的继承
子承父业
龙生龙,凤生凤,老鼠生来会打洞
你很像你的父亲
游戏里面 大量的继承 比如lol里面英雄都有qwer技能
1.2java 中继承的语法格式
java使用关键字: extends进行继承的操作
继承至少得有两个类
格式:
class B extends A {
}
B类继承了A类,A类是B类的唯一的父类或者叫超类或者叫基类
java中是单继承【一个儿子只能有亲生父亲】
B类是A类的子类
B类继承了A, A的东西(除了私有化的)都可以用!!!
成员属性:
公开的成员属性
子类能继承父类公开的成员属性
私有的成员属性
子类不能继承父类私有的成员属性
成员方法:
公开的成员方法
子类能继承父类公开的成员方法
私有的成员方法
子类不能继承父类私有的成员方法
构造方法:
无参数的构造方法
子类继承了父类,会把子类的无参构造方法执行,并且也会执行父类的无参构造方法。执行循序,先执行父类的无参构造,再执行子类的无参数的构造。
2.子类父类的内存分析图
实例化子类的时候,先执行的父类的构造方法,然后再子类的构造方法
3.super关键【有点鸡肋】
this调用当前对象的成员属性和成员方法。
this调用构造方法
super调用父类的成员属性和成员方法
【注意事项】:
1.必须有继承关系,如果想要使用super关键字
2.super关键字必须写在子类中。意思是让在子类中调用父类的一些东西
3.super.成员属性 只能写在子类的定义的方法中
4.super.方法() 只能写在子类定义的方法中
super调用构造方法:
格式:
super(参数);
【注意事项】:
1.一定要在子类的构造方法中去调用父类的构造方法
2.必须写在第一行
成员变量:
super.blood = 2000; 只能写在子类定义的方法中
成员方法:
super.haPi(); 只能在子类定义的方法中调用
构造方法:
在子类中的构造方法中去调用父类的构造方法。
4.重写【override】
子类通过继承可以使用父类的非私有化的成员方法,但是有的时候父类的方法需求不满足子类的需求了。在不改变父类的方法需求下,可以对父类的方法进行重写
重写条件:
1.必须有继承关系
2.父类的方法必须是公开的
3.子类的方法必须和父类的方法一样(返回值,方法名字,参数)
4.必须在子类中重写
5.重载【overload】
重载的条件
1.必须在同一个类中
2.方法名字必须一样,返回值必须一样,但是参数一定不一样!!!
class Person {//run这三个方法就是方法的重载//是方法名字一样 返回值一样 参数列表一定不同!!!//成员方法public void run () {System.out.println("在跑步");}public void run(String name) {System.out.println(name + "在跑步");}public void run (String name, int age) {System.out.println(name + ":" + age + "在跑步");}
}
public class Demo1 {public static void main(String[] args) {Person person = new Person();person.run();person.run("老邢");person.run("帅栋", 37);}
}
6.instanceof关键字
是java中二元运算符,左边是对象,右边是类。返回值是布尔类型
当左边对象是右边的类或者子类所创建的对象时候,返回true.否则返回false
语法格式:
person instanceof Object
public class Demo1 {public static void main(String[] args) {
/*是java中二元运算符,左边是对象,右边是类。返回值是布尔类型
当左边对象是右边的类或者子类所创建的对象时候,返回true.否则返回false*/B b = new B();A a = new A();boolean result = b instanceof A;boolean result1 = a instanceof A;//true
C c = new C();boolean result2 = c instanceof B;//trueboolean result3 = c instanceof A;//true
System.out.println(result);}
}
7.抽象类【abstract修饰的类】
7.1abstract关键字
1.abstract修饰成员方法叫抽象方法
2.abstarct修饰类 叫抽象类
【注意事项】:
1.abstract修饰成员方法,但是这个方法没有方法体
2.abstarct修饰的成员方法所在的类,也必须加上abstract修饰
3.abstract修饰的成员方法,没有方法体,没有实现的代码,是一个半成品
4.抽象类下面可以有非抽象的方法
5.抽象类下面可以没有抽象的方法,但是你叫抽象类
6.抽象类不能被实例化
7.抽象类能被继承,但是必须重写抽象方法,非抽象方法可重写可不重写
8.一个类只能继承一个抽象类
Java小白学点东西(基础)(8)相关推荐
- 吐血整理:小白学python编程基础(1)
小白学Python编程基础 华丽蜕变 TIOBE开发语言排行榜 中国教育界重大变革 教育界重大变革缘由 前世今生 程序设计语言 编程语言的使命 Python的诞生 Python的发展 Python的语 ...
- 电脑小白学python_零基础的小白怎么学python?
零基础的小白怎么学python?下面本篇文章就来给介绍一下,希望对你们有所帮助. 1.选择Python版本 对于Python工程师来说,Python的版本则是你们的工作环境.所以在学习之前一定要考虑选 ...
- 小白学python,零基础学Python难不难?
Python是一门非常适合入门的编程语言. Python语法简单明了,代码可读性很高,容易入门:对于初学者规范自己的学习有很大的帮助,同时还可以帮助初学者看懂别人的代码.今天达妹就带大家了解一下,零基 ...
- 学好JAVA需要学哪些东西?来我教你
文章目录 前言 关于我 读书笔记 - 个人开源(项目.小工具) 实用工具 一.Java后端 Java基础 数据库 MySQL Redis - JUC并发编程 JVM Netty 日志框架 23种设计模 ...
- 小白学测试(基础知识)
一.什么是软件测试? 软件测试是在软件投入运行前对软件需求分析.软件设计规格说明和软件编码进行差错和纠错.简单地说:测试是为发现错误而执行的过程. 二.软件测试的原则 1)尽早地和不断地进行软件测试: ...
- 小白学剪辑从哪里开始 小白学剪辑用什么软件好
小白如果要学剪辑,最好先确定学习的目的以及用途,然后在进一步决定学什么.如果是要学习专业剪辑的话,选择的内容会更专业:而如果只是满足日常娱乐需求的话,选择的内容就会简单一些.接下来,一起来了解下小白学 ...
- java编程好学么_零基础小白学Java编程好学吗
Java是一门不会衰落的开发语言,伴随着IT行业的兴起,目前学习java培训的人员也是变得更多了,但要想学好java的话通过自学是没有那样非常容易的事情.尤其是对于初学者的学生而言,那么零基础小白学J ...
- java零基础多久能学会_小白学java大概需要多久 零基础学起来难么
这取决于每天学习的时间.如果你每天花2-3个小时学习,大约需要半年时间.更重要的是,这取决于你学了多少.如果你想学一门基础知识,只需要几个月.如果你想深入学习,熟悉它,需要一年.两年甚至三五年的时间. ...
- 零基础小白学Java难度大不大
零基础小白学Java难度大不大?有很多人都是非常关心这个问题的,如今java在IT互联网行业的快速发展,引起了很多人的注意,那么,哪些人适合入行Java?零基础学习Java难度大吗?下面,小编就为大家 ...
最新文章
- opencv形状识别学习总结
- 写在创业的路上:如何从无到有的打造一个产品
- php获取标准输入输出,shell--标准输入输出(readamp;echo)
- 帧中继(Frame Relay)实验
- js整体缩小网页_SEO网页优化的原则是什么?
- pytorch查看模型的可训练参数
- e300氛围灯哪里调节_保时捷macan内饰改装升级32色呼吸氛围灯
- linux内核 3.1,快更新:Linux新内核发布 支持USB3.1!
- Prophet模型预测商品销售量
- matlab如何动态输出很长的图片,Qt实现长图片的放大缩小以及动态显示
- 解决master[remote rejected] pre-receive hook declined
- 12面魔方公式图解法_三阶魔方公式符号图解V2.0(2017/12/15)_碧海风云
- 如何缓解焦虑?做好这5件事,让你不再焦虑
- 最新-手把手教Unity2017.3 Android Studio3.0.1 SDK接入教程含jdk和sdk环境配置
- Anolis OS 8.2 RC2 发行,支持飞腾、海光、兆芯、鲲鹏等芯片
- 微信头脑王者服务器,微信头脑王者提示query server failed问题解决方法
- 虚拟机安装报错-启动失败-Intel VT-x 处于禁用状态
- 别当工具人了,手摸手教会你 Jenkins !
- 估计标准误差syx_什么是判定系数r2和估计标准误差syx
- 关于启动nginx时报错:error while loading shared libraries: libpcre.so.1
热门文章
- Linux的触屏手势软件安装,Touchégg: Linux 上触摸板/屏的多指手势
- 5款常用移动Html5场景页面制作工具推荐
- 码农笔记3 | 在招聘会碰壁
- 【我的第一份开发工作】1.找工作前的经历
- 前端对接stripe支付,创建测试session_is
- YOLOV5识别成语点选验证码
- JZOJ 4639 Angel Beats!【NOIP2016提高组A组7.16】
- html如何获取滚动条,js如何来实现获取滚动条宽度(代码示例)
- linux mc服务器 mod_linux如何搭建mc服务器地址
- 二维码登录——原理区