就Java而言,当有人问:
什么是多态?
将超载或重载是一个可以接受的答案?
我认为还有更多的东西.
如果您有一个抽象基类定义了一个没有实现的方法,并且您在子类中定义了该方法,那还是会覆盖吗?
我认为超载肯定不是正确的答案.
我看到一些Java示例使用this关键字来获取超类方法.示例:this.superClassMethod().通常情况下我们会使用super.有人可以帮助澄清为什么开发人员使用this而不是super?谢谢.
我不知何故认为这样做是个坏主意.这样做通常很常见吗?我不确定它的用法,因为我在实践中从未见过它,无论如何都是一个现实世界的例子.
public abstract class Car{
protected int speed;
public Car(int speed){
this.speed = speed;
}
}
public class Ambulance extends Car{
public Ambulance(int speed){
super(speed);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在浏览Android恶意软件中的一段代码以了解它的工作原理.av类定义如下
public final class av implements android.widget.AdapterView.OnItemClickListener {
final ChooserActivity a;
public av(ChooserActivity chooseractivity) {
super();
a = chooseractivity;
}
...Other methods here
}
Run Code Online (Sandbox Code Playgroud)
super()调用直接的父类构造函数 - >我知道
父类是Object.所以构造函数将返回什么.意味着返回对象的属性是什么.
package Geometry;
public abstract class GeometryFigures{
protected double surfaces;
protected double perimeter;
public GeometryFigures(double surfaces, double perimeter) {
super(); //**<---Why use super call here?**
this.surfaces= surfaces;
this.perimeter= perimeter;
}
public double getSurfaces() {
return surfaces;
}
public double getPerimetre() {
return perimeter;
}
}
Run Code Online (Sandbox Code Playgroud)
所以基本上一切都在标题中.我想知道为什么我需要在超类中使用super().
谢谢你的帮助.
我正在尝试学习java oop,当我做一些例子时,我发现了一些理解使用super方法的问题.请检查下面的代码.
你能告诉我为什么超级(); 方法没有引用superClass?我不明白.
superClass:
package javaapplication;
public class A {
protected String val;
public A(){
this.val = " Class A ";
}
}
Run Code Online (Sandbox Code Playgroud)
子类
package javaapplication;
public class B extends A {
public B(){
this.val = " Class B";
System.out.println(super.val);
}
}
Run Code Online (Sandbox Code Playgroud)
主类
package javaapplication;
public class JavaApplication {
public static void main(String[] args) {
B a = new B();
}
}
Run Code Online (Sandbox Code Playgroud)
输出:运行:B类
为什么我得到"B级"?
我们知道可以从子类的构造函数中调用父类的构造函数.它可以通过调用super来完成,super应该是构造函数的第一个语句.
它是否只是为了增加OOP概念的特征数量而保留的功能还是有任何实际应用?
如果有任何实际应用,请说明.
我要求实际应用.这意味着一个现实生活场景,使用此功能非常有用,而不是以其他方式完成工作.
每个人都只是发布概念或代码如何工作.但我已经知道了.我只想要一个实际的场景,它可以让我免于编写大量代码或者无法做其他代码.
java ×7
oop ×3
super ×2
android ×1
class ×1
constructor ×1
inheritance ×1
overloading ×1
overriding ×1
polymorphism ×1
superclass ×1