java基础知识回顾(二)

来源:互联网 发布:unity3d培训多少钱蓝鸥 编辑:程序博客网 时间:2024/06/05 02:18

java基础知识回顾(二)



接口: interface 接口名{ //静态变量、抽象方法}


接口的特点:1、接口中只能存放静态常量和抽象方法
    2、java接口是对功能的扩展
              3、通过实现接口,java类可以实现多实现
              4、一个类可以同时继承(extends)一个父类并且实现(implements)接口
             5、接口与接口之间可以通过使用extends来产生继承关系


接口与抽象类的区别:
1、抽象类和具体实现类之间是一种继承关系(is-a),也就是说如果采用抽象类的方式,则父类和子类在概念上应该是相同的
2、接口和实现类在概念上不要求相同,接口只是抽取相互之间没有关系的类的共同特征,而不去关注类之间的关系,它可以使没有层次关系的类具有相同的行为
3、抽象类是对一组具有相同属性和行为的逻辑上有关系的事物的一种抽象,而接口则是对一组具有相同属性和行为的逻辑上不相关的事物的一种抽象
4、对于接口和抽象类的选择,反映出设计人员看待问题的不同角度。抽象类用于一组相关的事物,表示的是“is-a”的关系;而接口用于一组不相关的事物,表示的是“like-a”的关系


例子:
public class InterfaceDemo{
public static void main(String [] args){
Person p =new Person();
Child child = new Child();
Dog dog = new Dog();
p.feed(child);
p.feed(dog);
}
}
class Person{
public void feed(IAbility ability){
ability.eat();
}
}
interface IAbility{
//接口中只能放共有的静态变量和抽象方法(不做特别标识为默认)
void eat();
}


class Child implements IAbility{
public void eat(){
system.out.println("吃米饭");
}
}
class Dog implements IAbility{
public void eat(){
system.out.println("啃骨头");
}
}


面向接口编程:
1、开发系统时,主体构架使用接口,接口构成系统的骨架
2、这样就可以通过更换接口的实现类来更换系统的实现



内部类:将一个类定义在另一个类的内部。内部的类称之为内部类。
内部类特点:
1、内部类可以很好的实现隐藏,可以使用protected、private修饰符
2、内部类可以直接访问外部类的所有成员,包括私有的成员
3、外部类不能直接访问内部类的成员,必须首先要建立内部类的对象才可以访问
4、内部类可以解决一些问题,比如间接地去实现多继承。可以避免修改接口而实现同一个类中两


种同名方法的调用
四种内部类:(成员内部类,静态内部类,匿名内部类,局部内部类)
成员内部类特点:
1、属于外部类的实例成员,成员内部类可以有四种修饰权限。在成员内部类访问外部类的成员方法和属性,要使用“外部类名.this.成员方法”和“外部类名.this.成员属性”的形式。
2、创建成员内部类的实例使用“外部类名.内部类名 实例名 = 外部类实例名.new 内部类构造方法(参数)”的形式。


成员内部类限制:
1、成员内部类不能与外部类重名。
2、不能在成员内部类中定义static属性、方法和类(static final形式的常量定义除外)。因为一个成员内部类实例必然与一个外部类实例关联,static成员完全可以移到其外部类中去


例子:
创建内部类对象:Outer outer = new Outer();
                Outer.Inner inner = outer.new Inner();

0 0
原创粉丝点击