[置顶]总结汇总

来源:互联网 发布:mac系统内存占用高 编辑:程序博客网 时间:2024/06/04 19:55
一、向上造型

1.1 即为--父类型的引用指向子类型的对象;

1.2 能点出来什么,看类型,跟对象无关--通过父类的引用只能访问父类的成员,不能访问子类的成员;

二、重写与重载

2.1 重写:看调用方法的对象:如果调用的是子类对象,则无论父类/子类引用类型,调用的都是重写后的方法,如果想调用父类的方法,用super.方法 来调;如果调用的是父类对象,则调用的是父类重写前的方法。

2.2 区别:    a)重写--父子类中,完全相同(签名相同)的方法。如何调用,取决于调用对象,而不是引用类型;重写在运行时作用;

                  b)重载--同一个类中,方法名相同,参数列表不同的方法。调用取决于方法结构(有无参数)。重载在编译时作用;

      p.s. :1)编译时,JVM未启动,故而内存没东西(JVM分配内存); 2)子类的访问权限大于或等于父类;

三、抽象类

3.1 抽象方法:由abstract修饰。只有方法的定义,没有方法体,如 方法 int antFormat();

3.2 抽象类:由abstract修饰,可包含抽象方法,也可只包含普通方法;

3.3 抽象类中没有抽象方法也可以将类声明成抽象类;

3.4 抽象类不能实例化,比如 Demo x = new Demo();是错误的;

3.5 抽象类一般需要被继承:1)子类声明成抽象类; 2)子类重写抽象类中所有抽象方法;

3.6 抽象类意义:1)封装子类公用的成员,为子类提供一个公共的类型; 2)定义抽象方法,由子类来做不同的实现,但接口(方法名)是一致的; 

四、接口  

4.1 接口就是个标准、规范;

4.2 接口中只能包含常量、抽象方法;

4.3 接口不能被实例化;

4.4 子类实现接口,必须将所有抽象方法都实现;

4.5 若子类又想继承父类又想实现接口,则需:先继承后实现接口;

4.6 接口与接口间可以继承;

4.7 接口可以作为一种类型声明变量,通过向上造型来实现:接口类型的引用变量,指向实现该接口的类对象;比如interface Inter{...}  class C implements Inter{...}

  则 Inter t = new C();  //向上造型

五、多态及继承等

1)多态

5.1 同一类型的引用指向不同对象时,有不同的实现;

5.2 同一个对象造型为不同类型时,有不同功能;

2)强转

5.3 父-子:前提--对象是子;

5.4 转为接口:前提--对象实现了该接口;

p.s. 用instanceof关键字判断某个引用指向的对象是否为指定对象:引用变量 instanceof 数据类型,结果为boolean型。

结论:1)强转成功与否,看对象;  

六、内部类

6.1 内部类只为外部类来使用,其他类不可以使用;

6.2 内部类可以直接访问外部类的所有成员,默认有个隐式的指向外部类对象的 外部类名.this ;

6.3 内部类通常只在外部类中被创建-new;

七、匿名内部类--何时使用

7.1 只有一个类(子类、实现类);

7.2 只需要构建一个对象;

7.3 对象构建完,这个类就没有意义了;

面向对象-总结:

1、封装:保证安全。

  1)类:封装数据、行为;(作为一个整体操作)

  2)方法:封装功能的实现;(隐藏实现的细节)

  3)访问修饰符:控制访问权限;(保证数据的安全)

2、继承:实现代码的重用。 extends

3、多态:多种形态,在继承的基础上。 提高可扩展性和可维护性。

  1)一个对象造型成不同的类型,有不同的功能;

  2)一个类型指向不通的对象,有不同的实现。

 

八、正则表达式

8.1 正则表达式定义:用一组特殊字符描述的一个字符串格式;

8.2 作用:匹配一个字符串是否满足格式要求;

8.3 [xyz]的作用:表示xyz中的任何一个字符;[^xyz]:除xyz的其他任意一个字符;

原创粉丝点击