1. 继承

1.1 现实生活当中有很多继承关系,例如:

360ruan_jian_xiao_zhu_shou_jie_tu_201311

1.2概念

Java 使用extends 来实现继承的

语法

class SubClassName extends SuperClassName{

         …

}

通过继承,子类自动拥有父类的所有属性和方法

Java 只支持单根继承

Java 通过接口实现多重继承的语义

1.3 目的

         重用

1.4 继承还是组合

         Java中的重用

         继承

                  继承关系是一种”is -a”关系

         组合

                  组合关系是一种”has-a”关系

在使用重用时我们优先考虑组合其次是继承

1.5 规则

构造方法不能被继承

方法和属性可以被继承

子类的构造方法自动调用父类的默认构造方法

当父类没有默认的构造方法时,子类必须显示调用父类的构造方法

1.6 实例

父类 Animal.java

package com.geek99.demo;


public class Animal {

   private int aid;

   private String name;

   private int age;


   protected int pid;

   // ctrl+/

//    public Animal(){

//        System.out.println("Animal...");

//    }

   public Animal(int aid,String name,int age){

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

       this.aid = aid;

       this.name = name;

       this.age = age;

   }

   public int getAid() {

       return aid;

   }

   public void setAid(int aid) {

       this.aid = aid;

   }

   public String getName() {

       return name;

   }

   public void setName(String name) {

       this.name = name;

   }

   public int getAge() {

       return age;

   }

   public void setAge(int age) {

       this.age = age;

   }

   public void display(){

       String msg = aid+","+name+","+age;

       System.out.println(msg);

   }

}

子类Dog.java

package com.geek99.demo;


public class Dog extends Animal{


   public Dog(){

       // 调用父类默认的构造方法

       //super();

       super(1,"hua hua",2);

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

   }


   void test(){

       super.pid = 100;

   }

}

测试类Test.java

package com.geek99.demo;


public class Test {

   public static void main(String[] args) {

       Dog dog = new Dog();

       dog.setAid(1);

       dog.setName("huahua");

       dog.setAge(2);


       dog.display();

   }

}

原文出处:

该博客教程视频地址: