第一题:
interface ButtonListener{
public void click();
public void dbclick();
public void keyup();
public void keydown();
}
abstract class ButtonAdapter implements ButtonListener{
public void dbclick(){
//...空实现
}
public void keyup(){
//...空实现
}
public void keydown(){
//...空实现
}
}
class MyClick extends ButtonAdapter{
public void click(){
System.out.println("我的单击事件!");
}
public void dbclick(){
System.out.println("我的双击事件!");
}
}
class YourClick extends ButtonAdapter{
public void click(){
System.out.println("你的单击事件!");
}
}
class Button{
private ButtonListener listener;
public void addListener(ButtonListener l){
this.listener = l;
}
public void click(){
listener.click();
}
public void dbclick(){
listener.dbclick();
}
}
class InterfaceDemo{
public static void main(String[] args){
MyClick myclick = new MyClick();
YourClick yourclick = new YourClick();
Button button = new Button();
button.addListener(myclick);
button.click();
button.dbclick();
button.addListener(yourclick);
button.click();
}
}
第二题:
多态是:某一类事物的多种形态表示,一个人同时是好父亲、好丈夫、好儿子。
属性就是保存数据,存在各自的对象中,当实例化得到当前对象时,升格的时候父类属性不被子类覆盖,
当子类没有改属性时则可以继承父类的该属性。
方式调用时存在栈中,逐级搜索,先请求父类,再请求子类,子类请求的方法与父类相同的方法时,则
会覆盖父亲请求的方法,意思就是父类请求的方法已经被子类请求的方法重置。
class Person{
public String name = "person";
public void cry(){
System.out.println("person cry...");
}
}
class Man extends Person{
public String name = "man";
public void cry(){
System.out.println("man cry...");
}
}
class Women{
public static void main(String[] args){
Man man = new Man();
man.cry();
System.out.println(man.name);
Person p = new Man();
p.cry();
System.out.println(p.name);
}
}
打印结果是:
man cry...
man
man cry...
person
转载于:https://blog.51cto.com/senlinmin/1771649