Java之继承
时间:2019-12-19
本文章向大家介绍Java之继承,主要包括Java之继承使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
继承的概念
1.继承:public class 子类 extends 父类{
}(继承了成员属性和成员方法,但是私有的成员属性不能在子类中使用)
2.继承的好处:提高了代码的复用性,提高了代码的编写效率,使得类与类之间产生了关系,为多态奠定了前提。
3.注意:子类之能继承一个父类,
但父类可以有多个子类。
子类继承父类,父类再可以继承父类,子类与父类是一个相对的概念。
所有类的父类为object,object包含多种成员属性和成员方法。
4.子类父类的特点。
成员属性:①子类继承父类,对同样的属性和方法,优先使用子类自己的属性,通过super来调用父类成员属性。②子类和父类的成员属性名不一样时,可以同时使用(
成员方法:①当在程序中通过对象调用方法时,会先在子类中查找有没有对应的方法,若子类中存在就会执行子类中的方法,若子类中不存在就会执行父类中相应的方法。
5.为什么子类可以和父类中的方法名一样?
首先,因为子类和父类的方法不在同一个类中,所以不是方法的重载;同时发生在,子类继承父类中,从返回值类型、方法名、参数列表一致,则称为方法的重写。
并且子类的修饰符权限大于等于父类的修饰符权限。public公共的》private私有的。
方法的重载和方法的重写可以同时存在。
修饰符权限,不写,有一个默认权限,小于public、
子类和抽象类的区别:
①底层子类都具有具体的方法体
②抽象类一定是父类,因为只有子类才能创建对象,从事具体的方法和动作。
③抽象类的存在,是为了被继承。
④抽象类中可以有普通方法,但不一定有抽象方法。
抽象类 :abstract class 类名{}
抽象方法:public abstract 返回值类型 方法名();
不能和以下关键字同时存在。
this和super
abstract因为是动态的非常量的,不能和以下关键字使用:①不能和private一起修饰方法。②不能和final创建变量。③不能和static修饰方法。
但可以按照如下照片内容使用:
1 public class Test { 2 public static void main(String[] args) { 3 new NewPhone().showNum(); 4 } 5 } 6 7 //手机类 8 class Phone{ 9 public void sendMessage(){ 10 System.out.println("发短信"); 11 } 12 public void call(){ 13 System.out.println("打电话"); 14 } 15 public void showNum(){ 16 System.out.println("来电显示号码"); 17 } 18 } 19 20 //智能手机类 21 class NewPhone extends Phone{ 22 23 //覆盖父类的来电显示号码功能,并增加自己的显示姓名和图片功能 24 public void showNum(){ 25 //调用父类已经存在的功能使用super 26 super.showNum(); 27 //增加自己特有显示姓名和图片功能 28 System.out.println("显示来电姓名"); 29 System.out.println("显示头像"); 30 } 31 }
原文地址:https://www.cnblogs.com/mlf19920916/p/12070486.html
- Hbase源码系列之regionserver应答数据请求服务设计
- 大数据基础系列之kafkaConsumer010+的多样demo及注意事项
- 大数据基础系列之kafka011生产者缓存超时,幂等性和事务实现
- 大数据基础系列之提交spark应用及依赖管理
- 大数据集群安全系列之kafka使用SSL加密认证
- 基于zookeeper leader选举方式一
- Spark与mongodb整合完整版本
- spark源码系列之累加器实现机制及自定义累加器
- Scala语法基础之隐式转换
- SparkSql的优化器-Catalyst
- Scala语言基础之结合demo和spark讲实现链式计算
- Spark高级操作之json复杂和嵌套数据结构的操作二
- Spark高级操作之json复杂和嵌套数据结构的操作一
- hadoop系列之基础系列
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 详细了解JS Map,它和传统对象有什么区别?
- Java HelloWorld 學習
- Bytecodes.java
- GenerateOopMap.java
- CellTypeState.java
- 终于开始了,微软的野心将通过全场景开发平台.NET 5体现得淋漓尽致!
- 微信小程序开发实战(27):录音
- 微信小程序开发实战(28):播放、暂停、停止声音
- 微信小程序开发实战(29):控制背景音乐
- 面试:如何从 100 亿 URL 中找出相同的 URL?
- Spring Boot+Gradle+ MyBatisPlus3.x搭建企业级的后台分离框架
- 不要再对类别变量进行独热编码了
- 面试Java基础问题汇总
- K8s集群上使用Helm部署2.4.6版本Rancher集群
- 一个工作三年的同事,居然还搞不清深拷贝、浅拷贝...