我一共上了三节课。动物(超类)和猫(子类)。当我试图调用whatIsTheClass()方法时,我没有理解输出"Cat“。我正期待着看到“动物”的输出。我之所以期望输出“动物”,是因为我认为方法whatIsTheClass()是从一个动物对象调用的,而不是从一个猫对象调用的,因为子类不包含这个方法。
主修班:
package com.example.java;
public class Main {
public static void main(String[] args) {
Animal cat = new Cat();
}
}
猫课:
package com
我正在尝试理解java wait()和sleep()方法之间的区别。我理解每一种方法的基本原理,但经常与下面的语句混淆。
wait is called on Object while sleep is called on Thread.
关于下面的代码,上述语句中的对象是什么,因为即使是线程对象t也是像java中的任何其他对象一样创建的。
public class MyRunnableThreadClass implements Runnable{
public void run(){
try{
Thread.sleep
}
catch(Exception e){}
}
public
我不明白这条规则。一年前,我从C#的书中学到OOP。所以,我学习C# OOP。当我编写java程序时,很难理解java代码。但是当我搬到android的时候。我发现很少有奇怪的东西。与classname.this、object.this一样,构造函数的参数是接口。我认为android并不容易,如果我在堆叠溢出中从来没有问过这个问题,我想我会死掉的。因为,我不能理解android库中的所有方法(android库文档)。当我在文档中阅读时,我只了解很少的所有方法,我理解许多方法的定义。但当我试图理解方法的参数时,我总是感到困惑。
我想问问。。。
为什么这是正确的:
final EditText t
在Java中:
class Base {
public Base() { System.out.println("Base::Base()"); virt(); }
void virt() { System.out.println("Base::virt()"); }
}
class Derived extends Base {
public Derived() { System.out.println("Derived::Derived()"); virt(); }
void virt() { S
对于Java中的继承,我有一个无法理解的问题:
我有两门课:
public class C
{
public void foo(D d)
{
System.out.println("cd");
}
}
public class D extends C
{
public void foo(C c)
{
System.out.println("dc");
}
public void foo(D d)
{
System.out.printl