【2023,学点儿新Java 您所在的位置:网站首页 JAVA如何调用父类的方法 【2023,学点儿新Java

【2023,学点儿新Java

2023-06-27 07:19| 来源: 网络整理| 查看: 265

前情回顾:

【2023,学点儿新Java-20】流程控制语句关键字及其介绍:while、do、break、continue、return【2023,学点儿新Java-19】Java特殊空类型关键字 | Java流程控制语句关键字 | switch-case 选择结构的执行过程&注意点 | 详解:for循环的普通和增强版本【2023,学点儿新Java-18】Java关键字汇总说明 |附:在线Unicode编码/解码 (含16进制)|基本数据类型关键字 |声明引用数据类型关键字| Java接口的特点 | 枚举类型的特点…更多Java系列文章,可参阅博主主页哦!

  解决焦虑最好的办法就是动起来,当前的焦虑基本来自于 过去无可奈何之下的“错误选择”,如果不打破循环就可能会一直处于焦虑之中!

 

🎯作者主页: 追光者♂🔥

        

🌸个人简介:   💖[1] 计算机专业硕士研究生💖   🌟[2] 2022年度博客之星人工智能领域TOP4🌟   🏅[3] 阿里云社区特邀专家博主🏅   🏆[4] CSDN-人工智能领域优质创作者🏆   📝[5] 预期2023年10月份 · 准CSDN博客专家📝    

无限进步,一起追光!!!

        

🍎感谢大家 点赞👍  收藏⭐   留言📝!!!

        

🌿本篇继续对Java中的关键字进行介绍。其中在Java的“关系”中,较为详细地介绍了Java中的extends、implements、instanceof等关键字以及它们的用法示例。当然了,这里仅仅是对它们进行初步的介绍,在后续教程中博主也会循序渐进,即会详细讲解它们的用法并给出清晰易懂的示例,请大家不要着急哦~

🕝目录 🍄一、default🍑1.1 用法🍑1.2 语法格式 🍄二、关系(共5个)🍑2.1 extends:继承关系💦2.1.1 简明语法格式:💦2.1.1 进一步介绍 🍑2.2 implements:实现关系💦2.2.1 简明语法格式💦2.2.1 进一步介绍 🍑2.3 instanceof:所属关系判断💦2.3.1 语法格式💦2.3.2 进一步介绍 🍑2.4 this:引用当前对象的💦2.4.1 this💦2.4.2 this的用法 🍑2.5 super:引用父类的💦2.5.1 super💦2.5.2 super的用法 🍄三、创建对象🍑3.1 new:创建🍑3.2 关于new关键字的 进一步介绍

🍄一、default 🍑1.1 用法

在英文中,default 意为 默认的。

用法:

1、switch...case 流程控制语句结构中2、JDK1.8之后 接口中用于声明默认方法3、在注解中 用于声明 某个配置参数的默认值 🍑1.2 语法格式 //用于switch结构 switch(表达式){ case 常量值1: 语句块1; 【break;】 case 常量值2: 语句块2; 【break;】 ... 【default: 语句块n+1; 【break;】 】 } //用于接口中 【修饰符】 interface 接口名{ 【权限修饰符】 default 返回值类型 方法名(【形参列表】){ } } //用于注解中 @元注解 【修饰符】 @interface 注解名{ 数据类型 配置参数名 default 默认值; }

 

🍄二、关系(共5个) 🍑2.1 extends:继承关系 💦2.1.1 简明语法格式: 【修饰符】 class 子类 extends 父类{ } 【修饰符】 interface 子接口 extends 父接口们{ } 💦2.1.1 进一步介绍

在Java中,extends关键字用于创建子类,子类继承父类的所有属性和方法。

子类可以使用extends关键字来扩展父类的功能,使得子类可以继承父类的属性和方法,并且可以添加自己的属性和方法。extends关键字的一般语法格式如下:

class SubclassName extends SuperclassName { // 子类的属性和方法 }

其中,

SubclassName是子类的名称,SuperclassName是父类的名称。

通过继承,子类 可以使用父类的公共和受保护成员,但 不能使用父类的私有成员。

如果子类中的方法与父类的方法 同名且参数列表也相同,则子类中的方法会覆盖父类中的方法,这被称之为“方法重写”(或“覆盖”)。

例如,

class Animal { public void move() { System.out.println("动物可以移动"); } } class Dog extends Animal { public void move() { super.move(); // 调用父类的方法 System.out.println("狗可以跑和走"); } } public class TestDog { public static void main(String args[]) { Animal a = new Animal(); // Animal 对象 Animal b = new Dog(); // Dog 对象 a.move(); // 执行 Animal 类的方法 b.move(); // 执行 Dog 类的方法 } }

输出结果:

动物可以移动 动物可以移动 狗可以跑和走

在上面的例子中,Animal类是一个基类,Dog类是Animal类的子类,Dog类重写了move()方法。

在main方法中,a.move()调用Animal类中的move()方法;b.move()调用Dog类中的move()方法,并且在Dog的move()方法中调用了super.move(),即 调用了Animal类中的move()方法。

🍑2.2 implements:实现关系 💦2.2.1 简明语法格式 【修饰符】 class 子类 【extends 父类】 implements 接口们{ } 💦2.2.1 进一步介绍

在Java中,implements关键字用于实现接口,即 类实现某个接口 并遵循该接口规范(指定接口中声明的所有方法均需要实现),实现之后具有相应的接口类型。implements关键字的一般语法格式如下:

class ClassName implements InterfaceName { // 实现接口中的方法 }

其中,

ClassName是 需要实现接口的类的名称,InterfaceName是 需要实现的接口名称。

一个类可以实现一个或多个接口,多个接口之间用逗号分隔。

例如,定义一个Play接口:

interface Play { public void play(); }

现在有一个 实现了Play接口的类:

class Game implements Play { public void play() { System.out.println("正在玩游戏..."); } }

上面的代码 表示Game类实现了Play接口,并实现了play()方法,当我们调用Game类的play()方法时,就会输出"正在玩游戏…"。

implements关键字的作用 是使类可以拥有和调用接口定义的方法和属性,并且让接口的方法和属性得到实现。

在Java中,接口可以看做是一种抽象的类,它可以 用来定义一组方法的签名,但是 所有方法 都默认为public并且没有实现。通过implements关键字把接口的方法签名实现在类中。

继承和实现 都是Java面向对象编程中的重要概念。它们分别用于扩展一个类或实现一个接口,这样 就可以提高代码的复用性、可读性和可维护性,同时 也需要正确的使用和理解它们的概念和特点。

🍑2.3 instanceof:所属关系判断 💦2.3.1 语法格式 if(对象 instanceof 类型名){ } 只有这个对象属于这个类型,就返回true

提示:一般用于在向下转型之前,加这个判断可以避免ClassCastException异常

💦2.3.2 进一步介绍

在Java中,instanceof是一个布尔运算符,用来 测试一个对象 是否是指定的类型。instanceof的一般语法格式如下:

obj instanceof ClassType

其中,

obj是要测试的对象;ClassType是要测试的类型。

如果obj是ClassType类型 或是它的子类,则返回true;否则返回false。

例如:

class Animal {} class Dog extends Animal {} public class Test { public static void main(String[] args) { Animal a = new Animal(); Dog d = new Dog(); System.out.println(a instanceof Animal); // true System.out.println(d instanceof Animal); // true System.out.println(a instanceof Dog); // false System.out.println(d instanceof Dog); // true } }

上面的代码中,

测试a是否是Animal类型或Animal的子类,结果为true;测试a是否是Dog类型或Dog的子类,结果为false;测试d是否是Animal类型或Animal的子类,结果为true;测试d是否是Dog类型或Dog的子类,结果为true。

instanceof 通常在处理对象时使用,特别是 在处理面向对象的程序中(如继承和多态)使用较多。

它可以在运行时进行类型检查,判断一个对象是否属于某个类,使我们 在编写程序时 更加灵活,同时 也需要注意程序设计原则,防止 出现过度使用instanceof的情况,使得程序变得复杂难以维护。

 

🍑2.4 this:引用当前对象的 💦2.4.1 this

this关键字:

当前对象

(1)在构造器 或 非静态代码块中,表示正在创建的对象 。(2)在成员方法中,表示 正在调用当前方法的对象。   💦2.4.2 this的用法 (1)this.属性 或 this.成员变量。当 局部变量与成员变量重名时,那么 可以在成员变量的前面加==this.==进行区分

this.属性,如果在本类中没有找到,也可能表示 引用从父类继承到子类中可见的属性。

(2)this.成员方法() 可以省略this.,表示 访问当前对象的其他成员方法。

this.方法,如果在本类中没有找到,也可能表示 引用从父类继承到子类中可见的方法。

(3)this() 或 this(实参列表) 当 需要调用本类的其他构造器,可以在当前构造器的首行 用this() 或 this(实参列表)进行调用。

this() 和 this(实参列表) 只会在本类中查找。

 

🍑2.5 super:引用父类的 💦2.5.1 super

super关键字:引用父类的,找父类的xx

💦2.5.2 super的用法 1、super.属性 如果子类声明了一个属性,它和从父类继承的属性同名了,这个时候 从父类继承的属性会被hidng(隐藏),如果此时在子类中想要使用它,那么就要用super.属性。

1)super.属性 也是访问不了父类的私有的属性,如果跨包,super.属性也访问不了父类权限修饰符缺省的属性。 2)super.属性,如果 在直接父类中没有找到,还会 向上 往间接父类继续查找

2、super.方法 如果 子类重写了 从父类继承的某个方法后,在子类中 又想要调用父类被重写的方法时,那么就可以使用 super.方法。

1)父类私有的方法 是不能被重写的,父类私有的方法 通过super.方法也是无法访问的。 2)如果跨包,父类权限修饰符 缺省的方法 也不能被重写和通过super.方法访问到super.方法,如果在直接父类中没有找到,还会向上往间接父类继续查找。

3、super() 或 super(实参列表) 在子类的构造器的首行,通过super()调用父类的无参构造器,super()这个可以省略。 通过super(实参列表)调用功能父类的有参构造,super(实参列表)不能省略。

 

🍄三、创建对象 🍑3.1 new:创建

Java中的new关键字非常重要,它用于创建新的对象、数组或匿名内部类实例,并为创建的对象分配内存空间。

可以简记为:用于创建数组对象、类的对象。

创建的对象会存储在堆中。

🍑3.2 关于new关键字的 进一步介绍

Java中,new是一个关键字,用于创建新的对象或数组,并返回 对该对象或数组的引用。它的一般形式如下:

Object objectName = new ClassName(); // 创建一个对象 dataType[] arrayName = new dataType[arraySize]; // 创建一个数组

其中,

ClassName 是要创建的类的名称;objectName 是新创建的对象的名称;arrayName 是新创建数组的名称;dataType 是数组元素的类型;arraySize 是数组的长度。

1)在创建对象时,new操作符会分配内存空间,并调用类的构造函数来初始化该对象。

2)在创建数组时,new操作符 会在堆内存中分配一块连续的内存区域,并初始化每个数组元素。

例如,我们可以使用new关键字来创建一个字符串对象:

String str = new String("Hello World");

这条语句 创建了一个String类型的对象,对象的内容是"Hello World",并将其引用赋值给str。

 

Java中的new关键字 还可以用于创建匿名内部类的实例,例如:

ActionListener listener = new ActionListener() { public void actionPerformed(ActionEvent e) { // 实现代码 } };

这条语句创建了一个匿名类 实现ActionListener接口,并将其实例引用 赋值给listener,这种方式为我们提供了一种方便的方式创建简单的、一次性使用的类实例。

 

持续更新中!  

有用的话,就点个赞 关注我吧!

 

 

🍒 热门专栏推荐:

🥇Python&AI专栏:【Python从入门到人工智能】🥈前端专栏:【前端之梦~代码之美(H5+CSS3+JS.】🥉文献精读&项目专栏:【小小的项目 (实战+案例)】🍎C语言/C++专栏:【C语言、C++ 百宝书】(实例+解析)🍏Java系列(Java基础/进阶/Spring系列/Java软件设计模式等)🌞问题解决专栏:【工具、技巧、解决办法】📝 加入Community 一起追光:追光者♂社区

 

持续创作优质好文ing…✍✍✍

 

记得一键三连哦!!!

 

求关注!求点赞!求个收藏啦!

在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有