------- android培训、java培训、期待与您交流! ----------
abstract关键字
修饰抽象类,则该类不能再被final 修饰
修饰方法时,该方法只有定义,没有实现,不能再被static、private、final修饰
接口:定义接口的关键字interface.
对于接口当中常见的成员:而且这些成员都有固定的修饰符。 (可以省略)
1,全局常量: public static final
2,抽象方法。public abstract
接口:
1、可以多实现,一个类可以有多个接口,
2、如果其中有接口都定义了同样的方法,这被实现的方法可以为这几个接口使用。
3、接口可以多继承,因为接口只有方法定义,没有方法体。不会造成不确定性。
4、接口中的成员都是公共的. 只有常量和方法的定义,没有变量和方法的实现。
抽象类和接口的异同点:
相同点:都是不断向上抽取而来的。
不同点:
1,抽象类需要被继承,而且只能单继承。
接口需要被实现,而且可以多实现。
2,抽象类中可以定义抽象方法和非抽象方法,子类继承后,可以直接使用非抽象方法。
接口中只能定义抽象方法,必须由子类去实现。
3,抽象类的继承是is a关系,在定义该体系的基本共性内容。
接口的实现是like a关系,在定义体系额外功能。
模板方法设计模式:(提高扩展性和复用性)
在定义功能时,当一部分功能确定,而一部分功能不确定,并且确定的部分在使用不确定的部分时,
可以将不确定的部分暴露出去,由子类来实现。不一定是抽象的。
单例设计模式:保证类在内存中的对象的唯一性。
实现方法:私有化构造函数,在内部创建对象,提供接口供外界引用
饿汉式:类加载时创建对象。具体工作中一般用饿汉式,比较安全。
懒汉式:方法被调用时创建对象,延迟加载方式。或者用多线程方式,将返回对象函数加一层判断,定义为synchronized,但是比较低效。
内部类访问规则:
1、内部类可直接访问外部类中成员,包括私有的,而不需建立对象。
内部类能直接访问外部类中成员,是因为内部类持有了外部类的引用,
即 Outer.this.成员名。
2、外部类不能访问内部类中的成员,需要先建立内部类对象。
3、内部类在外部类成员位置上,可以用private修饰。
4、当内部类中有静态成员,该内部类必须声明为静态的。当外部类中静态方法访问内部类时,内部类也要是静态的。
内部类访问格式:
1、当内部类定义在外部类成员位置上时,而且非私有,可以再外部其他类中,直接建立内部类对象。
格式: Outer.Inner para = new Outer().new Inner()
2、当内部类在成员位置上,可以被修饰符修饰,比如private将内部类在外部类中封装。
3、静态内部类具备静态特性,只能访问外部类中静态成员。
外部其他类访问静态内部类非静态成员:new Outer.Inner().function() //function为非静态成员
外部其他类访问静态内部类中的静态成员:Outer.Inner.function() //function 为静态成员
当描述事物时,发现事物内部还有事物,该内部事物用内部类来描述,因为内部事物在使用外部事物的内容。
局部内部类:
局部内部类不能定义静态成员。
不能有访问权限修饰符,不是成员;
可以直接访问外部类成员;
不可以访问所在局部中的局部变量,只能访问被final修饰的局部变量。
匿名内部类:必须继承一个类或者实现一个接口。
格式:nwe Base/Interface1() {定义子类内容}.成员;
其实匿名内部类就是一个匿名子类对象
------- android培训、 java培训、期待与您交流! ----------