面向对象的程序设计(Object Oriented Programming)之二-----继承

 

               二、面向对象的程序设计(Object Oriented Programming)之二-----继承

                 1、   继承(inheritance):java是单继承的,意味着一个类只能从另一个类继承(被继承的类叫父类【基类,base class】,继承的类叫子类),java中的继承使用extends关键字。

                 2、当生成子类对象时:

                             1>java默认首先调用父类不带参数的构造方法,然后执行该构造方法,生成父类的对象,接下来,再去调用子类的构造方法,生成子类的对象。

                             2>super关键字:表示对父类对象的显示引用。如果子类使用super()显式调用父类的某个构造方法,那么在执行的时候就会寻找与super()所对应的构造方法而不会去寻找父类不带参数的构造方法。与this一样,super也必须要作为构造方法的第一条执行语句。

例:

public class Child extends Parent   //子类
{
    public Child()
       {
         super(1);//显示调用父类

         System.out.println("child");
       }
   public static void main(String[] args)
      {

        Child child = new Child();
      }
}
class Parent   //父类
{
    public Parent(int i)
     {
         System.out.println("parent");
      }

   public Parent()

     {

        System.out.println("no args");

     }
}

      运行结果为:parent                               如果去掉super(1);运行结果为: no agrs

                           child                                                                                      child

 

 

                3、关于继承的3点:1>父类有的,子类也有;

                                                 2>父类没有的,子类可以增加;

                                                 3>父类有的,子类可以改变。

例:

public class InheritenceTest
{
     public static void main(String[] args)
          {
            Apple apple = new Apple();
            System.out.println(apple.name);
          }
}
class Fruit
        {
          String name = "fruit";
        }
class Apple extends Fruit
{
         String name = "apple";
}

                     此时运行结果为:apple            

                     当去掉String name = "apple";时 ,运行结果为:fruit            

                     当去掉String name = "fruit";时,运行结果为:apple                        

                 4、方法重写(Overide):又叫覆写,子类与父类的方法返回类型一样、方法名称一样、参数一样,这样我们说子类与父类的方法构成了重写关系。

                 5、 方法重写与方法重载的关系:

                        1>重载是发生了一个类内部的两个或多个方法;

                        2>重写发生在父类与子类之间,即仅在继承中才存在重写。当两个方法构成重写关系时,可以在子类方法中通过super()的形式调用父类的run()方法。

                  6、在定义一个类的时候,若没有显示的指定该类的父类,那么该类就会继承与java.langObject类。

 

例:

public class InheritenceTest2
{
    public static void main(String[] args)
        {
            Dog dog = new Dog();
            dog.run(1);
         }
}
class Animal
{
     public void run()
       {
          System.out.println("animal is running");
       }
}
class Dog extends Animal
{
     public void run(int i)
       {
           super.run();//调用父类的run方法
           System.out.println("dog is running"); 
        }
}

              此时的运行结果为:animal is running

                                              dog  is  running

              当去掉super();时,运行结果为:dog is running

              当去掉super()和dog.run(1);括号内的1后,运行结果为:animal is running

 

 

需要理解记忆的小知识点概念愈来愈多,不的不承认自己被它们弄晕了,自己的总结肯定不全面,望各位指教!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值