Java教程4_1(2011 06 12)

来源:互联网 发布:js中bom和dom区别 编辑:程序博客网 时间:2024/05/16 18:10

Java教程4_1(2011 06 12)

一、继承(extends

1、一个类可以从父类继承方法和成员变量,还可以增加自己的方法和成员能量。

2java支持单继承,但可以多层继承,继承的时候是不继承父类的构造方法的,如需要调用,应用super();来调用。子类在调用自身的构造方法前,会先调用父类的构造方法。

二、子类对象的实例化过程

注意:

1、  thissuper只能作为第一条语句在构造方法中出现

public Lesson4_1(String name,int age)

    {

       this.name = name;

       this.age = age;

}

public Student1(String name,int age)

    {

       super(name,age);

    }

2、  super()this调用语句不能同时在一个构造方法中出现

三、覆盖方法

1、覆盖方法必须和被覆盖方法具有相同的方法名称参数和返回值类型

2、在子类中调用父类中被覆盖的方法,可以用super()方法的格式调用

3、在覆盖方法时,不能使用比父类中被覆盖的方法更弱的访问权限

四、final关键字

1final定义的方法不能被继承,父类中定义final方法,其子类不能对其进行覆盖

2final定义时,可以在定义时就初始化,如果在构造方法中初始化的话,应放在每个构造方法中初始化(假如有多个构造方法)

3、在final前加上static时,只能在定义时就初始化。

4、最大的浮点数是 Float . Max_Value。(Max_Value是一个构造方法)

四、抽象类

1、说明:抽象类中可以有不是抽象的方法

2abstract int(int x,int y); abstract int(int x,int y){}是不一样,后者实现了方法

五、接口(interface

1、接口是抽象方法的集合

2、接口是一种特殊的抽象类,这种抽象类中包含常量和方法的定义,而没有变量和方法的实现

3、接口中的成员都是public访问类型的,接口里的变量默认状态是加上public static final的所以,不用我们去加上。

4、可以定义一个类用implements关键字去实现一个接口中的全部方法,我们还可以定义一个抽象类用implements关键字去实现一个接口中的部分方法。

六、对象类型的装换

1、子类对象可以自动装换为父类的

2、父类转换为子类的,是强制类型转换

3、我们可以使用instanceof来判断一个实例对象是否属于一个类 例如(a instandeof B)

4object类的equals方法用来比较对象中的属性是否一模一样(object类是所有类的子类)

七、面向对象的多态性

1、应用程序不必为每个派生类编写功能调用,只需要对去抽象基类进行处理即可。这叫“以不变应万变”

2、派生类的功能可以被基类的引用变量引用,这叫向后兼容,这用可以提高程序的可扩充性和可维护性

3afun();如果闯进去的是一个子类对象,那执行的是子类的方法

4、一个模拟装配电脑的程序

源代码如下:

interface PCI

{

    void start();

    void stop();

}

class NetWorkCard implements PCI

{

    public void start()

    {

       System.out.println("Send...");

    }

 

    public void stop()

    {

       System.out.println("stop...");

    }

}

class SoundCard implements PCI

{

 

    public void start()

    {

       System.out.println("du..du");

    }

 

    public void stop()

    {

       System.out.println("sound stop");

    }

   

}

class MainBoard

{

    public void UsePCICard(PCI p)

    {

       p.start();

       p.stop();

    }

}

public class Assenbler

{

    public static void main(String[] args)

    {

       MainBoard mainBoard = new MainBoard();

       NetWorkCard nCard = new NetWorkCard();

       SoundCard soundCard = new SoundCard();

       mainBoard.UsePCICard(nCard);

       mainBoard.UsePCICard(soundCard);

       mainBoard.UsePCICard(new PCI()

              {

                  public void start()

                  {

                     System.out.println("Test star");

                  }

 

                  public void stop()

                  {

                     System.out.println("Test stop");

                  }

              }

              );

    }

}

运行结果:

Send...
stop...
du..du
sound stop
Test star
Test stop

原创粉丝点击