Java编程语言 05.继承,多态

我的理解,多态主要是对象的引用的问题,父类的对象引用去引用子类对象会出现什么问题?子类的对象引用去引用父类对象会出现什么问题?继承,这个和class文件中的字段表有关。


继承:
01.类之间的关系是“is-a”,例如:经理和员工。经理是员工中的一员,所以经理类是子类,是员工类的子集。
02.声明子类 public class manager extends employee,关键字extends 表明构造的新类是在原来的类基础上进行的。
03.子类的属性和方法。子类继承了父类的属性,方法。注意:Final和static修饰的方法也可以继承,但是不可以重写。
04.子类想要实现新功能,可以重写父类的方法,或者自己创建一个新的方法,这个新方法父类的引用是不可以访问的。
i:重写(overread),例如getxxx()访问属性方法,子类是不可以直接访问自己的属性的。需要调用父类的访问器方法才可以访问自己的属性。
public double getSalary()
{
double baseSalary=getSalary();//这个调用是不可以访问类本身的Salary属性。
return baseSalary;
}

public double getSalary()
{
double baseSalary=super.getSalary();//这个调用是成功的
return baseSalary;
}

调用子类本身的属性,需要使用super.getxxx();

ii:子类的构造函数,如果在继承中,子类没有重载构造函数,默认也会生成一个无参的构造函数,子类的构造函数,会调用父类的构造函数,这个时候默认调用的是父类的无参构造函数,但是父类的构造函数已经重载了,可能没有这种无参的构造函数了,就会报错。
public manager(String name,int Salary,int day )
{
super(name,salary,day);//这个时候调用的是父类的参数是name,salary,day的构造函数。
}


方法的调用:
x.f(param)。
01.如果这个调用的方法是final,static,private修饰的话编译器会准确的知道需要调用的方法,直接就会调用这个方法
02.首先编译器会查看x的实际引用对象是什么类,要调用的方法名
03.实现这个类的重载解析和父类的public修饰的相同方法名的方法列举出来。找到最合适的那一项。注意,这里所说的方法都是父类有的。

多态:
多态源于Java对象的多态性。本质是方法调用的问题。
一个对象引用,可以指定多种实际类型对象,这种叫做多态。父类的对象引用可以引用子类的对象,子类的方法可能会重写过,这样就会出现不同输出。
置换法则:父类的对象引用可以被子类对象引用替换掉。
很多程序员不喜欢多态这个特性,就会用final来修饰方法,这样方法不可以重写,就实现了方法的唯一性。

深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值