java 学习 - 多态,构造函数。

Java继承与多态的深入解析 本文将深入探讨Java编程语言中关于继承和多态的高级概念。通过具体的代码案例,我们分析了方法重写、构造函数调用规则、多态性在方法覆盖中的应用以及泛型方法的协变返回类型。文章还探讨了Java中静态方法隐藏的特殊情况,以及如何在构造函数中使用super和this关键字来正确引用父类构造函数或重载类构造函数。 阅读详情

多态


1. 重载(overload),函数名称相同,传入参数不同。

class Student{
	Water getWater() {}
	Water getWater(ClassmateRequest cr) {}
}

2. 覆盖(override),子类重写父类方法。

class Student{
	public void study() {
		///...
	}
}

class LazyStudent extends Student{
	public void study() {
		while(true) {
			sleep();
			eat();
		}
	}
}

通常采用父类引用指向子类对象

Student s1 = new LazyStudent();		
s1.study();	


3. 抽象类,类中有抽象函数时,该类为抽象类,关键词:abstract.抽象类不能实例化,只能被继承。

abstract class Shape() {
	abstract public double area() {
		
	}
}

class Circle extends Shape{
	double r;
	public double area() {
		return Math.PI * r * r;
	}
}


4. 接口(interface),覆盖类中的某些方法,同时提高程序的可扩展性

public interface Record{
	public abstract void a();
	public abstract void b();
}

class A implements Record{
	public void a() {}
	public void b() {}
}

注:接口继承可以多继承,例如:

class A implements K,M,N{

}


构造函数,初始化


1.构造函数名与类名相同,无返回值,用来初始化对象属性值。


2.若不声明构造函数,编译器自动生成默认构造函数。


3.继承时,子类构造函数中默认有super();函数。

class A {
	int i;
	A(int x){
		i = x;
	}
}

class B extends A{
	double j;
	B(double x,int y){
		super(y);
		j =  x;
	}
}

4.this引用变量,一般不写,指向本身对象。

public class Point{
	int x,y;
	public Point(int x,int y) {
		this.x = x;
		this.y = y;
	}
	public Point() {
		this(0,0);
	}
}
5. super 和 this 只能出现在构造函数第一行。



用AI画电路板AI EDA初探Creating WiFi Radio with CELUS: A Step-by-Step Tutorial 使用CELU.IO创建WiFi收音机:分步教程 结论:整体还不太成熟,所选器件单元是欧美思维,器件选型成本和咱们华强北还是无法比。可以关注迭代,看客就当走马观花就行了;不过里面的单元模块还带有AI提问的这个比较好,值得国内EDA从业者学习。话不多说上正文:本教程目的是让我们深入了解如何使用CELUS设计平台构建WiFi收音机实战项目。本指南的重点是使用该平台来选择正确的解决方案,并整合一个项目,让您可以将音乐和节目从互联网直接传输到您自己构建的扬声器。 阅读详情

相关推荐

OneNet新版MQTT+OneJSON接入全指南

物联网云平台设备接入是嵌入式系统与云端协同的基础能力,其核心依赖于标准化通信协议与统一数据模型。MQTT作为轻量级发布/订阅协议,凭借低带宽占用和高可靠性,成为边缘设备上云的主流选择;而物模型(Thing Model)则定义了设备能力的数字契约,支撑数据语义化与平台自治管理。OneNet新版强制采用MQTT+OneJSON协议栈,不仅提升数据解析一致性与安全认证强度,更推动开发范式从‘协议适配’转向‘模型驱动’。该架构广泛适用于环境监测、智能表计、工业传感等场景,尤其利好基于ESP8266、STM32等资源

weixin_42599558的博客 362

java入门:多态、重载、构造函数、析构函数

是说,用户对应的接口都是一个Parent。而由于new后面的子类不同,而产生调用同一个方法method返回不同结果的显现叫多态。只有多个子类从一个父类继承或实现一个接口。在建立这些子类实例时,都用父类或接口做为变量类型,如上例中的parent。在使用完对象之后用来销毁,同时释放空间,隐式调用命名方法是构造函数前加一个波浪线。就是同一个方法在使用不同子类时有不同的表现(在这里是不同的返回值)。所谓的不同实现,是指参数的个数或类型的不同,返回类型可同也可不同。重载是同一个方法名(包括构造函数)的多种不同实现。

xinyuerr的博客 133

Copula函数实战:如何用MATLAB计算气象干旱与农业干旱的联合概率?

本文提供了一份基于MATLAB的Copula函数实战指南,详细阐述了如何利用该多变量联合分布函数计算气象干旱与农业干旱的联合概率及条件概率。通过从数据预处理、边缘分布拟合到Copula模型选择与检验的完整流程,帮助环境科学与农业气象研究者量化干旱事件的关联风险,为风险评估提供定量依据。

weixin_29213655的博客 431

2020-12-31多态下的特例:构造函数

多态下的特例:构造函数 1.多态实现 可以同通过继承虚函数的方式实现多态。如: #include <iostream> class A{ private: virtual void TestA(); public: A(){} ~A(){} void printA(); virtual void test_1(){std::cout<<"in A::test_1()\n";} void call_printA(); }; class B

weixin_47343182的博客 275

Linux 命令之 localectl -- 控制系统的本地化与键盘布局

文章目录命令介绍常用选项参考示例(一)显示当前的本地化设置与键盘映射(二)设置系统的本地化字符集环境变量(三)列出本地所有字符集(四)列出所有可用的控制台键盘映射(五)设置控制台的键盘映射 命令介绍 localectl 命令可用于查询与修改系统的本地化(locale)与键盘布局的设置。 它通过与 systemd-localed.service 通信来修改例如 /etc/locale.conf 与 /etc/vconsole.conf 之类的配置文件。本地化设置控制着 用户界面的语言、字符类型与字符编码、 日

liaowenxiong的博客 5400

晶晨S905L3S/S905L3SB芯片刷机实战:BL加载工具与线刷固件全解析

本文针对晶晨S905L3S/S905L3SB芯片电视盒子刷机时常见的2%失败问题,提供了两种核心解决方案。一是使用已集成特殊通信协议的专用版USB Burning Tool(如V2.2.5/V2.2.7),二是采用旧版工具配合独立的BootLoader加载工具。文章详细解析了两种方案的原理、操作步骤、固件选择及常见问题排查,旨在帮助用户成功完成刷机,让老旧设备焕发新生。

weixin_29238147的博客 1110

多态中构造函数、函数重载执行顺序和过程

多态中构造函数、函数重载执行顺序和过程一直有些不理解,经过测试,对其中的运行顺序有了一定的了解,希望对初学者有些帮助。 eg1: public class A { public A() { Console.WriteLine('A'); } public virtual void Fun() { Console.WriteLine("A.Fun()");

Peter的博客 1141

UOS忘记密码别慌!用LiveCD工具5分钟搞定,附命令行救援模式详细步骤

本文详细介绍了UOS系统密码遗忘时的两种解决方案:图形化LiveCD工具和命令行救援模式。针对普通用户,LiveCD工具提供5分钟快速重置密码的便捷操作;而技术人员可通过命令行深度解析系统分区挂载与密码修改流程。文章还包含安全加固建议,帮助用户预防类似问题发生。

weixin_27032989的博客 592

java的多态、重载、构造函数及析构函数介绍

转自:微点阅读https://www.weidianyuedu.com 一、多态性 多态有3个条件 1:继承 2:重写(重写父类继承的方法) 3:父类引用指向字类对象 实例如下: interface Parent { String method(); } class Child1 implements Parent { public String method() { return "Child1 "; } } class Child2 impl...

xiaoweids的博客 937

Python + DeepSeek 完美结合:本地部署提效指南

随着生成式 AI 和深度学习技术的快速发展,如何将智能搜索工具与本地部署结合以提升效率成为了许多企业和开发者关注的重点。DeepSeek 是一款开源的智能搜索框架,结合 Python 的灵活性,能够实现高效、可靠的本地部署方案。本文将介绍如何通过 Python 和 DeepSeek 的完美结合,实现本地化部署并提升工作效率。通过将 Python 与 DeepSeek 结合,可以快速实现语义搜索的本地化部署,确保数据安全的同时提升工作效率。文件可直接作为 DeepSeek 的输入数据。

weixin_44872675的博客 1万+

【CAD二次开发】炸开所有的嵌套块

代码】【CAD二次开发】炸开所有的嵌套块。

1515

C++核心——多态里的构造和析构函数

C++核心——多态里的构造和析构函数 一、构造函数和析构函数 对象的初始化和清理也是两个非常重要的安全问题 ​ 一个对象或者变量没有初始状态,对其使用后果是未知 ​ 同样的使用完一个对象或变量,没有及时清理,也会造成一定的安全问题 c++利用了构造函数和析构函数解决上述问题,这两个函数将会被编译器自动调用,完成对象初始化和清理工作。 对象的初始化和清理工作是编译器强制要我们做的事情,因此如果我们不...

wtzhu_13的博客 5706

华为od 面试八股文_JAVA语言_01_含答案

华为od 面试八股文_JAVA语言_01_含答案

MISAYAONE的博客 4316

java深度学习:多态、重载、构造函数、析构函数

转自:微点阅读 https://www.weidianyuedu.com一、多态性多态有3个条件1:继承2:重写(重写父类继承的方法)3:父类引用指向字类对象实例如下:interface Parent{String method();}class Child1 implements Parent{public String method(){return "Child1 ";}}class Child2 implements Parent{public String method

xiaoweids的博客 130

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

java的三大特征封装,继承,多态的理解

学习java时的感悟:   不要看着java的定义去理解奥妙的他,他的每一个定义都是包含了无 限多的东西。   要么你去用代码理解,要么你把他放到现实世界去理解,java的创造与目标就是解决现   实问题,如果在现实中找不到他的影子,说明你还不理解他。  封装的理解:            首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作通过抽象的数据类型将数据

qinAction的博客 771

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

JAVA中的继承和多态

观察这两个类,我们发现它们有共同的特点,比如都有自己的名字,年龄。我们会发现程序并不会报错,这种写法在JAVA中被称为方法的重写,将父类的方法在子类中重新定义,可以满足具体的业务。这时,我们又发现,其实关于jiao和eat其实从某种层面来讲,猫和狗都是拥有的,只是,他们所表现出来不同而已,我们可以通过super关键字去访问父类的构造方法,方法,成员变量,用super关键字可以提高我们的代码可读性。我们会发现代码并没有报错,并且可以正常的去调用和修改name的值,因为在继承中,父类的成员变量会被子类继承。

aminosi的博客 363

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

JAVA构造函数内调用多态方法

看如下程序代码段: public class Test1 { public static void main(String[] args) { A b = new B(); b.print(); } } class A { public A(){ print(); } public void print()

3004

深入java (类)对象初始化,类构造函数的调用以及多态(java中多态的实现机制以后补充)

上一篇文章初探类的加载和初始化顺序,这一篇文章继续总结在继承的场景中,我们构造对象的时候,构造方法的调用顺序(以及简单解释为什么会这样执行构造函数,这些构造函数的调用顺序一定是jvm里面的一些规则定下来的,其实这样的目的就是多态和其他(其他是什么我现在也不确定,满怀期待呀!!)),给自己解答当年的疑惑,对于虚拟机里面多态的实现机制,我们会在深入java虚拟机。原创不易,转载请注明出处:http://

yabay2208的博客 821

java多态的学习

 /** *  */package com.tjb.foundation.test;/** * @author tjbworkshop * */class A{  public String f(D obj){return ("A and D");}  public String f(A obj){return ("A and A");}}class B extends A{  public

tjbworks的专栏 773

java学习——多态

一旦重写hashCode()方法,那么0bject类中的hashCode()方法就是失效,此时的hashCode()方法返回的值不再是内存地址。//其名称( getSimpleName() ),其超类( getSuperclass() ),及其实现的接口( getInterfaces() )。引入:Object类中定义的方法大多数都是属于native方法,native表示的是本地方法,实现方式是在C++中的。//hashCoode() 的返回值是对象的哈希码,即对象的内存地址(16进制)。

ping12138的博客 933

构造函数、继承、多态

一:构造函数 Demo 先看一段代码 public class InitialTime { int age = 18; String name = "guang"; public InitialTime() { this.age = 100; this.name = "java"; init(); service(); destroy(); } public void init() {

weixin_44023129的博客 397

C++与Java多态的区别

多态是指用父指针指向不同子类对象时,调用其共有的函数,不同的子类会有不同的行为。虽然C++和Java都具有多态机制,但是他们的实现不同,使用时的效果也会略有不同。 在C++中 普通函数调用:具体调用哪个方法在编译时就可以决定(通过查找编译器的符号表),同时在使用标准过程调用机制基础上增加一个表示对象身份的指针(this指针)。 虚函数调用:函数调用依赖于对象的实际类型,一般地说,对象的...

huangyimo的专栏 1745

堆栈、构造函数、继承、多态等总结

  1.Import 用来引入其他包中你所需要的类,但不能找到没有包的类。 2.堆(Heap)和栈(Stack)的区别:(它们均由JVM虚拟机管理分配)         堆 用来存放所有的对象,包括所有的实例变量,其空间在程序运行时分配        栈 用来存放方法调用和局部变量                         name  age Student 

xiaodejun5241的专栏 762

java的多态、重载、构造函数、析构函数的理解

一、多态性 多态有3个条件 1:继承 2:重写(重写父类继承的方法) 3:父类引用指向字类对象 实例如下:interface  Parent {         String  method(); } class  Child1  implements  Parent {         public  String  method()         {                ...

LoveZhangjia521的专栏 322

java多态、重载、构造函数及析构函数介绍

是说,用户对应的接口都是一个Parent。而由于new后面的子类不同,而产生调用同一个方法method返回不同结果的显现叫多态。在建立这些子类实例时,都用父类或接口做为变量类型,如上例中的parent。在使用完对象之后用来销毁,同时释放空间,隐式调用命名方法是构造函数前加一个波浪线。是同一个方法在使用不同子类时有不同的表现(在这里是不同的返回值)。所谓的不同实现,是指参数的个数或类型的不同,返回类型可同也可不同。重载是同一个方法名(包括构造函数)的多种不同实现。2:重写(重写父类继承的方法)...

xiaoweids的博客 2562

JAVA学习——继承和多态

方法匹配:编译器在编译时根据参数的类型、参数的个数、参数的顺序决定调用哪一个方法,这是由引用变量的声明类型决定的;方法绑定是指方法在几个子类中都可以被执行,JVM在运行时动态绑定方法的执行,这是由变量的实际类型决定的。subtype的对象也是supertype的对象,但是supertype的对象不是subtype的对象。构造函数调用顺序:自己的构造函数->父类的构造函数->父类的父类的构造函数->……重写具有相同的签名和返回值类型。——————————4.ArrayList类————————————

2301_78060222的博客 704
上一篇: 简单的算术表达式求值
下一篇: 编译原理------词法分析
what_wrong
博客等级 码龄9年 6粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值