【Java开发指南 | 第九篇】访问实例变量和方法、继承、接口

读者可订阅专栏:Java开发指南 |【CSDN@秋说】

在这里插入图片描述

文章目录

    • 访问实例变量和方法
    • 继承
    • 接口

访问实例变量和方法

通过已创建的对象来访问成员变量和成员方法,如下所示:

/* 实例化对象 */
Object referenceVariable = new Constructor();
/* 访问类中的变量 */
referenceVariable.variableName;
/* 访问类中的方法 */
referenceVariable.methodName();

举例:

public class ice{public ice(String name){System.out.println("名字是:"+name);}int myAge;public void setAge(int age){myAge=age;}public int getAge(){System.out.println("年龄是:"+myAge);return myAge;}public static void main(String[] args){ice I = new ice("张三");//创建对象I.setAge(1);//调用方法,设定年龄I.getAge();//调用方法,输出年龄}
}

在这里插入图片描述

继承

在 Java 中,一个类可以由其他类派生。如果我们需要创建一个类,而且已经存在一个类具有我们所需要的属性或方法,那么我们可以将新创建的类继承该类。

利用继承的方法,可以重用已存在类的方法和属性,而不用重写这些代码。被继承的类称为超类(super class),派生类称为子类(sub class)。

这里给出简单的继承模板:

// 父类
class Parent {// 父类的属性private String name;// 父类的构造方法public Parent(String name) {this.name = name;}// 父类的方法public void printName() {System.out.println("Name: " + name);}
}// 子类继承父类
class Child extends Parent {// 子类的构造方法public Child(String name) {// 调用父类的构造方法super(name);}// 子类可以重写父类的方法@Overridepublic void printName() {System.out.println("Child's name: " + name);}// 子类可以添加新的方法public void sayHello() {System.out.println("Hello from Child!");}
}public class Main {public static void main(String[] args) {// 创建子类的实例Child child = new Child("ICE");// 调用继承自父类的方法child.printName();// 调用子类的方法child.sayHello();}
}

实例演示

假设有一个Animal类,它具有name和age两个属性,以及eat()和sleep()两个方法:

public class Animal {protected String name;protected int age;public Animal(String name, int age) {this.name = name;this.age = age;}public void eat() {System.out.println(name + " is eating.");}public void sleep() {System.out.println(name + " is sleeping.");}
}

现在,如果我们想创建一个Dog类,它是一种动物,具有和Animal类相同的属性和方法,我们可以使用继承来实现:

public class Dog extends Animal {public Dog(String name, int age) {super(name, age);}public void bark() {System.out.println(name + " is barking.");}
}

在这个例子中,Dog类继承了Animal类。Dog类拥有了name和age属性,以及eat()和sleep()方法,同时还添加了一个bark()方法。通过继承,Dog类可以重用Animal类的代码,并且可以添加自己特有的行为。

下面创建了一个Dog类的实例,并实现相应的继承:

public class Ice {public static void main(String[] args) {Dog myDog = new Dog("dog", 3); //继承myDog.bark();  //自己特有的行为}
}class Animal {protected String name;protected int age;public Animal(String name, int age) {this.name = name;this.age = age;}public void eat() {System.out.println(name + " is eating.");}public void sleep() {System.out.println(name + " is sleeping.");}
}class Dog extends Animal {public Dog(String name, int age) {super(name, age);}public void bark() {System.out.println(name + " is barking.");}
}

在这里插入图片描述
注意:

1、父类中声明为 public 的方法在子类中也必须为 public。

2、父类中声明为 protected 的方法在子类中要么声明为 protected,要么声明为 public,不能声明为 private。

3、父类中声明为 private 的方法,不能够被子类继承。

接口

在 Java 中,接口可理解为对象间相互通信的协议。接口在继承中扮演着很重要的角色。

接口只定义派生要用到的方法,但是方法的具体实现完全取决于派生类。

举个例子:

// 定义一个接口,只定义派生要用到的方法
interface Animal {void eat();void sleep();
}//Dog类实现了Animal接口,并提供了这两个方法的具体实现。
class Dog implements Animal {public void eat() {System.out.println("Dog is eating.");}public void sleep() {System.out.println("Dog is sleeping.");}
}class Main {public static void main(String[] args) {Dog myDog = new Dog();myDog.eat();myDog.sleep();}
}

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【工位ubuntu的配置】补充

软件 安装桌面图标的问题 登录密码 root的密码为:19980719 按照如下的链接进行配置: https://blog.csdn.net/zhangmingfie/article/details/131102331?spm1001.2101.3001.6650.3&utm_mediumdistribute.pc_relevant.none-task-blog-2%7Edefault%7E…

【Qt】Qt安装包、源码、子模块(submodules)下载

1、Qt 4.0 ~ Qt5.14 Qt 4.0 ~ Qt5.14 离线安装包、源码和子模块(submodules)源码下载路径: https://download.qt.io/new_archive/qt/以Qt5.7.1为例,注意子模块都是源码,需要独立编译 2、Qt5.15 ~ Qt6.7 Qt5.15 ~ Qt6.7源码和子模块(submodules)源码下载路径: htt…

在Windows安装R语言

直接安装R语言软件 下载网址:R: The R Project for Statistical Computing 下载点击install R for the first time 通过Anaconda下载RStudio 提前下载好Anaconda 点击Anaconda Navigate 点击RStudio的Install下载就好了

HQL,SQL刷题,尚硅谷(中级)

目录 相关表结构: 1、order_info表 2、order_detail表 题目及思路解析: 第一题,查询各品类销售商品的种类数及销量最高的商品 第二题 查询用户的累计消费金额及VIP等级 第三题 查询首次下单后第二天连续下单的用户比率 总结归纳&#xff1a…

Ubuntu 传输文件

scp [选项] 源文件 目标路径 以下是一些常用的 scp 命令选项: -r:递归复制目录和子目录。 -P:指定远程 SSH 服务器的端口号。 -i:指定用于身份验证的私钥文件。 -p:保留源文件的时间戳、权限和所有者。 -v&#x…

vivado 使用 JTAG-to-AXI Master 调试核进行硬件系统通信

使用 JTAG-to-AXI Master 调试核进行硬件系统通信 JTAG-to-AXI Master 调试核为可自定义核 , 可在运行时生成 AXI 传输事务并驱动 FPGA 内部的 AXI 信号。该核支持所 有存储器映射型 AXI 接口和 AXI4-Lite 接口 , 并且可支持位宽为 32 或 64 …

Py深度学习基础|Numpy基础总结

注:本文来自菜鸟教程学习总结 一、数组属性 NumPy 的数组中比较重要 ndarray 对象属性有: 注意:使用reshape后,数组的结构(即元素的排列顺序和内在连接)没有改变,但因为返回的是一个视图&#…

FTP客户端Transmit 5 for Mac中文激活版

Transmit 5是一款功能强大的Mac FTP客户端软件,它由Panic公司开发,为用户提供简单、高效的文件传输体验。 Transmit 5 for Mac中文激活版下载 Transmit 5支持多种传输协议,如FTP、SFTP、WebDAV和Amazon S3等,满足用户不同的文件传…

Maven的dependencyManagement与dependencies区别

先说结论:Maven 使用dependencyManagement 元素来提供了一种管理依赖版本号的方式。 在maven多模块项目的pom文件中,有的小伙伴会发现最外层的pom文件和里面的pom文件有个地方不一样 如下图 父pom 子pom 一般来说是在maven的最外父工程pom文件里&…

JAVA网络编程、项目验证码实现

什么是网络编程? 在网络通信协议下,不同计算机上运行的程序,进行的数据传输。 应用场景:即时通信、网游对战、金融证券、国际贸易、邮件、等等 不管是什么场景,都是计算机跟计算机之间通过网络进行数据传输 Java中可以使用ja…

AI大模型量化格式介绍(GPTQ,GGML,GGUF,FP16/INT8/INT4)

在 HuggingFace 上下载模型时,经常会看到模型的名称会带有fp16、GPTQ,GGML等字样,对不熟悉模型量化的同学来说,这些字样可能会让人摸不着头脑,我开始也是一头雾水,后来通过查阅资料,总算有了一些…

OpenHarmony网络组件-Mars

项目简介 Mars 是一个跨平台的网络组件,包括主要用于网络请求中的长连接,短连接,是基于 socket 层的解决方案,在网络调优方面有更好的可控性,暂不支持HTTP协议。 Mars 极大的方便了开发者的开发效率。 效果演示 编译…