一个类实现一个接口,可以不完成实现接口中定义的抽象方法,但这个类只能是抽象类。同样,一个类继承一个抽象类,也可以不实现抽象类中定义的抽象方法,这个类必须是抽象类。
定义抽象方法,不能有方法的实现。
一个类继承一个父类,由于子类对象包含一个完整的父类对象,所以可以继承父类中所有的方法和属性,包括私有方法和私有属性。但是私有方法和私有属性不能被子类直接访问,可以通过父类公有方法进行访问。
如果一个方法声明为private,那么该方法默认修饰为final。也就是该方法不能被子类所重写。
私有方法默认声明为final,不能被子类重写。但声明为抽象方法,是要求该方法子类重写。所以矛盾。
抽象方法不能声明为private和static.
子类对象产生之前,必须调用父类构造方法产生父类对象。那么子类构造方法的第一句默认为super().如果父类中没有定义无参构造方法,那么子类构造方法必须显示调用。
多态调用时,父类变量指向子类对象,只能调用父类中定义的属性和方法,不能调用子类特有的属性和方法。
访问接口中定义的变量,由于接口中定义的变量修饰符为public static final 通过接口名.变量名访问。
一个方法的参数如果是父类类型,表示调用该方法时,可以传递任何一个子类对象。一个方法的参数如果是接口类型,表示调用该方法时,可以传递任何一个实现类对象。
OO:面向对象;OOP:面向对象编程;OOA:面向对象分析 OOD:面向对象设计
时间开发步骤:
1、确定事件源
2、确定监听器
3、注册,建立事件源和监听器的联系
内部类中访问外部类对象:外部类类名.this
定义抽象方法,不能有方法的实现。
一个类继承一个父类,由于子类对象包含一个完整的父类对象,所以可以继承父类中所有的方法和属性,包括私有方法和私有属性。但是私有方法和私有属性不能被子类直接访问,可以通过父类公有方法进行访问。
如果一个方法声明为private,那么该方法默认修饰为final。也就是该方法不能被子类所重写。
私有方法默认声明为final,不能被子类重写。但声明为抽象方法,是要求该方法子类重写。所以矛盾。
抽象方法不能声明为private和static.
子类对象产生之前,必须调用父类构造方法产生父类对象。那么子类构造方法的第一句默认为super().如果父类中没有定义无参构造方法,那么子类构造方法必须显示调用。
多态调用时,父类变量指向子类对象,只能调用父类中定义的属性和方法,不能调用子类特有的属性和方法。
访问接口中定义的变量,由于接口中定义的变量修饰符为public static final 通过接口名.变量名访问。
一个方法的参数如果是父类类型,表示调用该方法时,可以传递任何一个子类对象。一个方法的参数如果是接口类型,表示调用该方法时,可以传递任何一个实现类对象。
OO:面向对象;OOP:面向对象编程;OOA:面向对象分析 OOD:面向对象设计
时间开发步骤:
1、确定事件源
2、确定监听器
3、注册,建立事件源和监听器的联系
内部类中访问外部类对象:外部类类名.this