网站首页 > 精选教程 正文
上篇java语法入门005,继续学习Java[1]。
ailx10:网络安全优秀回答者,网络安全硕士
继承入门
- 继承是为了解决共性问题的
- 工程师有名字和身份号码牌
- 黑客是工程师的子类,有名字和身份号码牌,独有组织名。
- 程序员也是工程师的子类,有名字和身份号码牌,独有公司名。
- 子类继承父类的属性和方法
- 代码简洁,维护性好,复用性高,牛逼
继承的特性
- 子类拥有父类非private的属性和方法
- 子类可以拥有自己的属性和方法,对父类进行扩展
- 子类可以用自己的方式,实现父类的方法
- Java是单继承的,但是可以多重继承
- 单继承就是一个子类,只有一个父类
- 多重继承就是一个子类,可以有子类
Java继承关键字
- extends关键字:类单一继承
- implements关键字:接口多继承
- 我从学校继承了学习方法
- 我从基地继承了实践方法
- super 用来引用当前对象的父类
- this 指向自己的引用
- final 声明的类不能被继承,修饰的方法不能被子类重写
构造方法
- 子类不能继承父类的构造方法,子类可以调用父类的构造方法
- 如果父类的构造方法带参数,子类的构造方法必须通过super关键字,调用父类的构造方法
- 如果父类的构造方法不带参数,子类可以自动的调用父类的无参构造函数
重写(Override)
- 子类对父类允许访问的防范的实现过程进行重写编写
- 返回值和形参都不能改变
- 子类可以根据自身需要,重新定义自己的行为
- 方法的Override细则:
- 参数列表必须和被重写的方法完全相同
- 返回类型与被重写方法的返回类型可以不同,但必须是父类返回值的派生类
- 访问权限不能比父类中被重写的方法的返回权限低
- 父类的成员方法只能被子类重写
- 声明为final的方法不能被重写
- 声明为static的方法不能被重写,但是能够被再次声明
- 子类和父类在一个包里,子类可以重写父类所有方法(private,final例外)
- 子类和父类不在一个包里,子类只能重写父类声明为public和protected的非final方法
- 构造方法不能被重写
- 如果不能继承这个方法,这个方法就不能被重写
重载(Overload)
- 方法名相同,参数不同,返回类型无所谓。
- 被重载的方法必须改变参数列表
- 被重载的方法可以改变返回类型
- 被重载的方法可以改变访问修饰符
- 被重载的方法可以声明新的异常
- 方法可以在一个类中或子类中被重载
多态
- 多态就是同一个接口,不同对象调用的操作不同
- 狗调用叫的方法,结果是“汪汪”
- 猫调用叫的方法,结果是“喵喵“
- 多态的必要条件:继承Override父类引用指向子类的对象
- 多态优点:良好的扩展,可以对所有类的对象进行通用处理
- ailx10是黑客(子类),也是工程师(父类)
- ailx10拥有父类写代码的能力
- ailx10拥有子类黑客能力
- new MyHacker产生的对象是子类的黑客对象
- new出来的对象的引用是父类工程师
- 工程师不具备黑客能力,所以用ailx10接收的引用在编译时候不通过hack()方法
- ailx10运行时,写代码的方法,调用的是子类黑客的写代码的方法(多态)
参考
- ^Java入门教程 https://www.runoob.com/java/java-tutorial.html
猜你喜欢
- 2024-11-05 Java基础语法二 java基础语法教程
- 2024-11-05 java8流式语法掌握这6点,程序员基本业务代码就可以玩转了
- 2024-11-05 Shell基本语法 shell常用命令及示例
- 2024-11-05 「零基础编程培训系列—JAVA基础」4.Java基本语法(三)
- 2024-11-05 Android开发-java基本语法第二讲 java开发安卓app的流程
- 2024-11-05 Java基本语法——流程控制 java中流程控制语句
- 2024-11-05 Java基础语法&数组 java数组菜鸟教程
- 2024-11-05 Java编程基础阶段笔记 day03 Java基本语法(中)
- 2024-11-05 八、Java基本语法元素-变量与常量
- 2024-11-05 给Java初学者福利——Java语法基础
你 发表评论:
欢迎- 04-11Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- 04-11Java中你知道几种从字符串中找指定的字符的数量
- 04-11探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- 04-11Python字符串详解与示例(python字符串的常见操作)
- 04-11java正则-取出指定字符串之间的内容
- 04-11String s1 = new String("abc");这句话创建了几个字符串对象?
- 04-11java判断字符串中是否包含某个字符
- 04-11关于java开发中正确的发牌逻辑编写规范
- 最近发表
-
- Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- Java中你知道几种从字符串中找指定的字符的数量
- 探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- Python字符串详解与示例(python字符串的常见操作)
- java正则-取出指定字符串之间的内容
- String s1 = new String("abc");这句话创建了几个字符串对象?
- java判断字符串中是否包含某个字符
- 关于java开发中正确的发牌逻辑编写规范
- windows、linux如何后台运行jar(并且显示进程名)
- 腾讯大佬私人收藏,GitHub上最受欢迎的100个JAVA库,值得学习
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)