JAVA学习总结四

来源:互联网 发布:打印mybatis sql 编辑:程序博客网 时间:2024/06/16 20:03

本总结接上篇,对JAVA知识总结如下:

第九章 多态与抽象(续)

  1. 多态技术基础
    1. 向上转型技术:一个父类的引用可以指向不同的子类对象,或者说一个子类对象可以被当做一个父类类型。
    2. instanceof关键字:用于判断运行时对象的真正类型。
    3. 动态绑定技术:运行时根据父类引用变量所指对象的实际类型执行相应的子类方法,从而实现多态性。
      注:1.object可以引用各种对象和基本数据;
      2.引用指向对象的强转风险为可能完全转不过去(编译成功运行失败)
  2. 多态的主要应用
    1. 多态参数:当方法的某个形式参数是一个引用的时候,与该引用兼容的任何对象都可以传递给方法,从而允许方法接受不同数据类型的形式参数。
    2. 异构集合:创建一个不是同一类型,但是有共同父类的数据集合。不同对象的集合称为异构集合。
  3. 抽象
    1. 关键字:Abstract(抽象)可以修饰类、方法
      1. 如果将一个类设置为abstract,则此类必须被继承使用。此类不可生成对象,必须被继承使用。
      2. Abstract可以将子类的共性最大限度的抽取出来,放在父类中,以提高程序的简洁性。
      3. Abstract虽然不能生成对象,但是可以声明,作为编译时类型,但不能作为运行时类型。
        注:Final和abstract永远不会同时出现。
      4. 当abstract用于修饰方法时,此时该方法为抽象方法,此时方法不需要实现,实现留给子类覆盖,子类覆盖该方法之后方法才能够生效。

注意比较:
private void print(){};此语句表示方法的空实现。
Abstract void print(); 此语句表示方法的抽象,无实现。

总结:1. 如果一个类中有一个抽象方法,那么这个类一定为一个抽象类。反之,如果一个类为抽象类,那么其中可能有非抽象的方法。

2.如果让一个非抽象类继承一个含抽象方法的抽象类,则编译时会发生错误。因为当一个非抽象类继承一个抽象方法的时候,本着只有一个类中有一个抽象方法,那么这个类必须为抽象类的原则。这个类必须为抽象类,这与此类为非抽象冲突,所以报错。

3.子类的方法必须覆盖父类的抽象方法。方法才能够起作用。

为了实现多态,那么父类必须有定义。而父类并不实现,留给子类去实现。此时可将父类定义成abstract类。如果没有定义抽象的父类,那么编译会出现错误。

Abstract和static不能放在一起,否则便会出现错误。(这是因为static不可被覆盖,而abstract为了生效必须被覆盖。)

例:
public class TestClass{
public static void main(String[] args){
SuperClass sc=new SubClass();
Sc.print();
}
Abstract class SuperClass{
Abstract void print();}
}
class SubClass extends SuperClass(){
void print(){
System.out.println(“print”);}
}

第十章 接口

  1. JAVA的核心概念:接口(interface)
  2. 开闭原则:源代码不改,只增加新代码。(原意:一个好的设计对扩展来说是开放的,对修改来说是关闭的。)
  3. 接口与类属于同一层次,实际上,接口是一种特殊的抽象类。
    如:
    interface IA{
    }
    public interface:公开接口
  4. 与类相似,一个文件只能有一个public接口,且与文件名相同。
    在一个文件中不可同时定义一个public接口和一个public类。

  5. 一个接口中,所有方法为公开、抽象方法;所有的属性都是公开、静态、常量。

  6. 一个类实现一个接口的格式:
    class IAImple implements IA{
    };

  7. 一个类实现接口,相当于它继承一个抽象类。

注:类必须实现接口中的方法,否则其为一抽象类。实现中接口和类相同。

  1. 接口中可不写public,但在子类中实现接口的过程中public不可省。
    (如果剩去public则在编译的时候提示出错:对象无法从接口中实现方法。)

注:
① 一个类除继承另外一个类,还可以实现接口;
class IAImpl extends java.util.Arrylist implement IA{}
继承类 实现接口
这样可以实现变相的多继承。
② 一个类只能继承另外一个类,但是它可以继承多个接口,中间用“,”隔开。
Implements IA,IB
所谓实现一个接口,就是指实现接口中的方法。
③ 接口和接口之间可以定义继承关系,并且接口之间允许实现多继承。
例:interface IC extends IA,IB{};
接口也可以用于定义对象
IA I=new IAImpl();
9. 实现的类从父类和接口继承的都可做运行时类型。
IAImple extends A implement IA,IB
IB I=new IAImple();
I instance of IAImple;
I instance of A;
I instance of IA;
I instance of IB;
返回的结果均为true.

  1. 接口和多态都为JAVA技术的核心。

  2. 接口实际上是定义一个规范、标准。

    ① 通过接口可以实现不同层次、不同体系对象的共同属性;
    通过接口实现write once as anywhere.
    以JAVA数据库连接为例子:JDBC制定标准;数据厂商实现标准;用户使用标准。
    接口通常用来屏蔽底层的差异。
    ②接口也因为上述原因被用来保持架构的稳定性。
    未完待续

0 0