Java面向对象的三大特征

news2024/10/5 17:17:55

Java面向对象的三大特征

java面向对象的三大特征:“封装、继承、多态”。更多Java技术知识,请登陆疯狂软件教育官网。微信搜索微信号:疯狂软件,参加2015年优惠活动,有机会获得优惠劵和代金劵。

以本文为例,User类中的变量为私有变量,只能通过创建对象(此时构造方法自动调用)来赋值。

外界只能通过公有方法api()来访问User类。

Admin类继承了User类,调用了其构造方法,还重写了method_1方法,增加了一个特有方法power()。

User文件

public class User {

  /**

  * 私有变量, 仅限本类访问

  */

  private String name;

  private int age;

  /**

  * 构造方法, 自动调用

  */

  public User(String name, int age){

  this.name = name;

  this.age = age;

  }

  /**

  * 私有方法, 仅限本类访问

  */

  private void method_1(){

  System.out.println("i am a " + name + " ; my age is: " + age);

  }

  /**

  * 可被子类继承、覆盖和同包调用

  */

  protected void method_2(){

  System.out.println("i am not override");

  }

  /**

  * 公有方法,对外接口

  */

  public void api() {

  method_1();

  method_2();

  }

  }

  Admin文件

  public class Admin extends User {

  /**

  * 构造方法

  */

  public Admin(String name, int age) {

  // 使用父类的构造方法

  super(name, age);

  }

  /**

  * 覆盖父类的同名方法

  */

  protected void method_2() {

  System.out.println("NO, you are override");啊

  }

  /**

  * 子类特有方法

  */

  public void power(){

  System.out.println("admin is powerful");

  }

  }

  Main文件

  public class Main{

  public static void main(String[] arg) {

  // 实例化一个User对象,并调用User的公有方法

  User a = new User("user", 12);

  a.api();

  // 输出换行,方便区分不同的代码

  System.out.println();

  // 实例化一个Admin对象,并调用Admin的两个方法

  Admin admin_me = new Admin("admin", 23);

  admin_me.api(); // 继承自User父类

  admin_me.power(); // 自身独有的方法

  System.out.println();

  /**

  * 多态性

  */

  User test_admin = new Admin("test_admin", 34);

  test_admin.api();

  // test_admin.power(); // User中没有声明power这个方法,所以不能使用

  }

  }

以上所述就是本文的全部内容了,希望大家能够喜欢。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/820208.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【腾讯云 Cloud studio 实战训练营】搭建Next框架博客——抛开电脑性能在云端编程(沉浸式体验)

文章目录 ⭐前言⭐进入cloud studio工作区指引💖 注册coding账号💖 选择cloud studio💖 cloud studio选择next.js💖 安装react的ui框架(tDesign)💖 安装axios💖 代理请求跨域&#x…

价格管控有哪些有效的方法

品牌在面对线上店铺的低价、窜货时,需要及时进行干预治理,否则低价效应会蔓延,会有越来越多的店铺跟价,导致渠道更加混乱,但是管控价格也非一时之事,需要品牌按流程治理。 力维网络有多年价格管控经验&…

OpenLayers入门,OpenLayers如何加载TMS瓦片服务,以腾讯地图TMS图层为例

专栏目录: OpenLayers入门教程汇总目录 前言 本章讲解OpenLayers如何加载TMS图层服务到地图上,TMS图层介绍请参考《Gis开发入门,OpenLayers、Leaflet、Maplibre-gl和Cesiumjs地图引擎介绍以及几种地图服务vms、vmts、TMS和XYZ介绍》,下面介绍一下TMS图层和XYZ图层的区别。…

Halcon GPU算法加速测试

Halcon GPU算法加速测试 基本流程 官方加速程序:compute_devices.hdev 1.获取显示本机显卡信息 2.打开、激活设备、准备测试数据 3.GPU 循环测试执行 (affine_trans_image) 4.GPU 循环测试执行(affine_trans_image) 数据传入传出 5.CPU 循环测试执行(affine_…

mysql主从配置及搭建(gtid方式)

一、搭建主从-gtid方式 搭建步骤查看第一篇。bin-log方式。可以进行搭建1.1 gtid和二进制的优缺点 使用 GTID 的主从复制优点: 1、简化配置:使用 GTID 可以简化主从配置,不需要手动配置每个服务器的二进制日志文件和位置。 2、自动故障转移…

【Docker】Docker中安装MySQL数据库

文章目录 1. 前言2. Docker中安装MySQL服务2.1. 查看可用的MySQL版本2.2. 拉取MySQL镜像2.3. 查看本地镜像2.4. 运行容器2.5. 查看正在运行的容器2.6. 查看容器内部2.7. 授权root远程登录2.8. 在宿主机连接到容器的MySQL2.9. 用Navicat连接容器的MySQL 3. 如果是MySQL8.0可能需…

vue项目开发常用工具类

防止重复造轮子,将经常用的函数进行记录,也参考网上的并一起进行记录,后续会持续更新常用到的函数工具类方法😉😉 /** 验证手机号是否合格* true--说明合格*/ export function isPhone(phoneStr) {let myreg /^[1][3,…

VMware vCenter Server Appliance VCSA 备份还原

vCenter是VMware管理员的常备工具,要保护它的安全,我们可以借助vCenter备份还原方式来达成目的。 怎么备份vCenter 7.0? vCenter备份包括vCenter Server核心配置、资源清册和历史数据,如统计信息、事件和任务。接下来&#xff0…

【LeetCode每日一题】——1572.矩阵对角线元素的和

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 矩阵 二【题目难度】 简单 三【题目编号】 1572.矩阵对角线元素的和 四【题目描述】 给你一…

HTTP之Session、Cookie 与 Application

目录 简介cookiecookie生命周期 sessionsession生命周期 HTTP cookies示例application 简介 cookie、seesion、application三个都会缓存我们用户状态的数据,使得我们在浏览器访问网站时可以更快速的获取到信息。 主要原因在于HTTP协议是无状态的,我们每…

IO流(4)- 序列化流与反序列化流

目录 1. 序列化流与反序列化流的基本介绍 2. 序列化流的基本用法? 3. 序列化流的作用? 4. 反序列化流的基本用法? 5. 反序列化流的作用 6. 序列化流与反序列化流使用时需要注意的细节(非常重要) 6.1 被序列化的…

90%的测试工程师是这样使用Postman做接口测试的

一:接口测试前准备 接口测试是基于协议的功能黑盒测试,在进行接口测试之前,我们要了解接口的信息,然后才知道怎么来测试一个接口,如何完整的校验接口的响应值。 那么问题来了,那接口信息从哪里获取呢&…

中国AI大模型峰会“封神之作”!开发者不容错过这场夏季盛会

年度最强大模型顶会来袭!喊话中国数百万AI开发者,速来! 硬核来袭!中国AI大模型峰会“封神之作”,开发者们不容错过! 前瞻大模型发展趋势,紧跟这场大会! 中国科技超级碗,大模型最新前…

SpringCloud Alibaba分布式集群要点

1、可通过nginxkeepalived实现nginx高可用集群。 2、nacos集群,在nacos/conf/cluster.conf配置IP:8848,nginx中配置nacos负载均衡,yml文件使用其对应域名即可。 注:服务器之间内网不通 举例:腾讯服务器之间就存在内网不通的现象…

关于bigemap在土地行业的一些应用

选择Bigemap的原因: 由于我们是国营企业单位,管理六万多亩的国有土地,必须要有这样的软件套图 客户之前用的谷歌,后来不能访问了,通过百度搜索到这款软件 使用场景: 使用软件一般都用于套坐标以及空间规…

未来将有可能是元宇宙发展的数字化时代

近年来,元宇宙环境的概念近年来引起了广泛关注,并引发了巨大的舆论浪潮。然而,经济形式的放缓和行业向人工智能的转变所带来的挫折引发了人们对这一 " 雄心勃勃 " 的概念的可行性和时机的质疑。 很明显,一些挑战阻碍了…

Python元编程-装饰器介绍、使用

目录 一、Python元编程装饰器介绍 二、装饰器使用 1. 实现认证和授权功能 2.实现缓存功能 3.实现日志输出功能 三、附录 1. logging.basicConfig介绍 2. 精确到毫秒,打印时间 方法一:使用datetime 方法二:使用time 一、Python元编程…

Eureka 学习笔记4:EurekaClient

版本 awsVersion ‘1.11.277’ EurekaClient 接口实现了 LookupService 接口&#xff0c;拥有唯一的实现类 DiscoveryClient 类。 LookupService 接口提供以下功能&#xff1a; 获取注册表根据应用名称获取应用根据实例 id 获取实例信息 public interface LookupService<…

【MySQL】数据库基本使用

文章目录 一、数据库介绍二、数据库使用2.1 登录MySQL2.2 基本使用2.2.1 显示当前 MySQL 实例中所有的数据库列表2.2.2 创建数据库2.2.3 创建数据库表2.2.4 在表中插入数据2.2.5 在表中查询数据 三、服务器、数据库、表之间的关系四、SQL语句分类五、存储引擎 一、数据库介绍 …

多线程案例(2)

文章目录 多线程案例二二、阻塞式队列 大家好&#xff0c;我是晓星航。今天为大家带来的是 多线程案例二 相关的讲解&#xff01;&#x1f600; 多线程案例二 二、阻塞式队列 阻塞队列是什么 阻塞队列是一种特殊的队列. 也遵守 “先进先出” 的原则. 阻塞队列能是一种线程…