标签:
1、instanceof作用是什么?
Animal是Dog的父类;
Animal a = new Dog();
System.out.println(a instanceof Dog);		//true
System.out.println(a instanceof Animal);	//true
System.out.println(a instanceof Object);	//true
判断a变量指向的对象,是否匹配指定类型,如果a为null,返回false。
2、什么是抽象方法?什么是抽象类?
如果一个类中的方法,只有方法定义,没有方法的具体实现,那么该方法被称为抽象方法。而拥有抽象方法的类叫做抽象类,用关键字***abstract***定义,抽象类不能直接实例化,如果要实例化抽象类,那么抽象类的变量要指向子类对象。
3、接口如何定义?接口如何实现?实现一个接口必须要做什么?
定义接口使用interface。实现接口使用implements
必须将接口中所有的抽象方法重写(如果不实现所有抽象方法,那么这个类必须是抽象类)
4、接口中的方法修饰符是什么?接口中的变量修饰符是什么?
public abstract
public static final
5、接口和抽象类的区别是什么?
1、抽象类和接口都不能直接实例化(不能直接用);
2、抽象类中可以有抽象方法,也可以有具体方法。但接口中只能有抽象方法;
3、抽象类中定义的变量是普通属性。但接口中定义的变量是公共的静态的常量;
4、一个类只能继承一个抽象类,但可以实现多个接口
6、什么时候使用继承?什么时候使用接口?
抽象属性和行为时使用继承,只抽象行为用接口
JAVA代码查错
a、
abstract class Name { 
  private String name;
  public abstract boolean isStupidName(String name) {}
}
定义抽象方法,不能有方法的实现
b、  abstract class Something { 
  private abstract String doSomething ();
}
private定义的方法默认是final,默认是不能重写抽象方法的。但是申明为抽象方法是要求子类重写。所以矛盾。所以抽象方法不能申明为私有的(private)和静态(static)。
c、public class Father{
    public Father(int x){
   }
}
class Child extends Father{
    public Child(){
   }
}
子类对象产生之前必须调用父类构造方法产生父类对象。那么子类构造方法的第一句默认为super()。如果父类中没有定义无参构造方法,那么子类构造方法必须显示调用
d、public class Father{
    public void test(){
    }
}
class Child extends Father{
    public void speak(){
    }
}
class Test{
   public static void main(String[] args){
	Father f = new Child();
	f.speak();
   }
}
多态调用时,父类变量指向子类对象,只能调用父类中定义的属性和方法,不能调用子类特有的属性和方法。
e、interface  A{ 
  int x = 0;
}
class B{ 
  int x =1;
}
class C extends B implements A { 
  public void pX(){ 
     System.out.println(x);
  }
  public static void main(String[] args) { 
     new C().pX();
  }
}
当打印x时,引起  歧义不知道x是父类中继承的x,还是从实现接口中得到的x。
要访问父类中继承的x属性,通过super.x访问。
要访问接口中定义的x,由于接口中定义的变量修饰符为:public static final
通过接口名.x访问
说出运行结果
1、abstract class Base{
    abstract public void myfunc();
public void another(){
    System.out.println("Another method");
 }
}
public class Abs extends Base{
    public static void main(String argv[]){
    Base a = new Abs();
    a. another ();
}
public void myfunc(){
    System.out.println("My Func");
} 
public void another (){
    super.another();
    myfunc(); 
}
}
“Another method”
“My Func”
2、interface MyIn{}
public class MyClass implements MyIn{
	static String str;
	public MyClass(){
		
	}
	public static void main(String[] args) {
		MyClass myClass = new MyClass();
		System.out.print(myClass instanceof MyIn);
		System.out.println(str instanceof String);
	}
}
true
false
代码实现以下文字描述的系统。
1、手机有打电话、听歌、照像、摄像的功能。应该如何设计?(继承类,实现多个接口)
2、超人、鸟、飞机都会飞,现在空管局的人要控制这些会飞的东西。我们该怎么设计。
3、在一个游戏中,有盗贼,猎人,医生,农民,士兵几类人,这些人都有名称、等级,还可以自己介绍自己;
  其中,
      盗贼可以偷盗。
      猎人可以打猎。
      农民可以采矿。
      盗贼、猎人和农民可以攻击。
      农民、医生可以治疗。
      士兵可以抵抗盗贼、猎人和农民等的攻击。
       还有一个玩家可以控制这些角色。
     设计这个系统。
标签:
原文地址:http://www.cnblogs.com/ljjdeblogs/p/5897927.html