java基础学习笔记(5)

来源:互联网 发布:网络与新媒体专业 编辑:程序博客网 时间:2024/06/05 09:39

Java基础学习(5

接口、继承与多态

类的继承

java中使用extends关键字来标识两个类的继承关系。

 

Calss Test()

{

   public Test()

   {

}

protected void doSomething()

{

}

Protected Test dolt()

{

return new Test();

}

}

 

class Test2 extends Test{

  public Test2()

  {

super();

super.doSomething();

  }

   

  public void doSomethingnew()

  {

    

  }

  

  public void doSomethxing()

  {

 

  }

 

  protected Test2 dolt()

  {

    return new Test2();

  }

 

}

 

 

总结:

     1)在子类构造方法中可以调用父类的构造方法来构造子类,用super()实现;

     2)在子类中使用super关键字调用父类的方法;

     3super关键字只能调用publicprotected修饰的成员方法;

     4)在子类中可以重写父类的方法,包括方法的权限修饰符,返回值,参数类型及个数,实现内容。

     5如果仅仅是修改实现内容,称为重构。

     6)重写父类方法不能降低方法的修饰权限范围。

     7)在继承机制中,java编译器会在子类构造方法中先调用父类的无参构造方法,对于有参构造方法,只能通过super()显示调用。

 

技巧:如果使用finalize()对对象进行清理,需要确保子类的finalize()方法的最后一个动作是调用父类fianlize(),以保证当垃圾回收对象占用内存时,对象的所有部分都能被正常终止。

 

 

Object

 

1)在java中,所有的类都直接或间接的继承自java.lang.Object类。

 

2)任何类都可以重写Object中类,但是getClass(),notify(),notifyAll(),wait()等方法不能被重写。

 

3)常用的toString()equals();

 

 

对象类型的转换

向上转型

由较具体的类到较抽象的类转换;即把子类对象赋值给父类类型的变量。

 

向下转型

由较抽象的类到较具体的类转换;即把父类对象赋值给子类类型的变量。

 

 

使用instanceof操作符判断对象类型

在向下转型时,如果父类不是子类的实例,会发生ClassCastException异常,所以在转换前要判断父类是否是子类的实例,通常使用instanceof操作符来完成。

 

调用方式:

myobject instanceof ExampleClass

 

返回true,则myobject ExampleClass的实例;

返回false,则myobject 不是ExampleClass的实例;

 

 

 

 

 

方法的重载

构成重载的条件:

1)参数类型不同,构成重载

2)参数个数不同,构成重载

3)参数顺序不同,构成重载

 

多态

根据向上转型原则,通过父类成员方法实现不同的子类。

多态存在的三个必要条件
一、要有继承;
二、要有重写;
三、父类引用指向子类对象

 

抽象类和接口

抽象类

抽象类和抽象方法必须用abstract关键字修饰

抽象类中不一定有抽象方法,但是有抽象方法的类必须定义为抽象类

抽象类不能实例化,抽象类有构造方法,但是不能实例化

抽象的子类
   a:如果不想重写抽象方法,该子类是一个抽象类。
   b:重写所有的抽象方法,这个时候子类是一个具体的类。

接口

接口的特点:
  A:接口用关键字interface表示 
   interface 接口名 {}
  B:类实现接口用implements表示
   class 类名 implements 接口名 {}
  C:接口不能实例化  注意接口的实例化的方式和抽象方法的是一样的
  D:接口的子类
   a:可以是抽象类。但是意义不大。
   b:可以是具体类。要重写接口中的所有抽象方法。

0 0
原创粉丝点击