码迷,mamicode.com
首页 > 编程语言 > 详细

java继承

时间:2017-02-06 13:06:31      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:div   自动   jpg   extend   企鹅   intro   实例   show   调用   

继承的概念

继承就是自雷继承父类的特征和行为,使得子类对象具有父类实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

 

生活中的继承:

技术分享

兔子和羊属于食草动物类,狮子和豹属于食肉动物类。

食草动物和食肉动物属于动物类。

所欲继承需要服务的关系是:父类更通用,子类更具体。

 

继承的格式:

class 父类{}

class 子类 extends 父类 {}

 

为什么需要继承

企鹅:属性(姓名,id),方法(吃,睡,自我介绍)

老鼠:属性(姓名,id),方法(吃,睡,自我介绍)

企鹅类:

public class Penguin { 
    private String name; 
    private int id; 
    public Penguin(String myName, int  myid) { 
        name = myName; 
        id = myid; 
    } 
    public void eat(){ 
        System.out.println(name+"正在吃"); 
    }
    public void sleep(){
        System.out.println(name+"正在睡");
    }
    public void introduction() { 
        System.out.println("大家好!我是"         + id + "号" + name + "."); 
    } 
}

 老鼠类:

public class Mouse { 
    private String name; 
    private int id; 
    public Mouse(String myName, int  myid) { 
        name = myName; 
        id = myid; 
    } 
    public void eat(){ 
        System.out.println(name+"正在吃"); 
    }
    public void sleep(){
        System.out.println(name+"正在睡");
    }
    public void introduction() { 
        System.out.println("大家好!我是"         + id + "号" + name + "."); 
    } 
}

 从两个类可以看出,代码重复了,维护性不高。所以要根本性解决问题,就需要继承,将两段代码中相同的部分提取出来组成一个父类:

public class Animal { 
    private String name;  
    private int id; 
    public Animal(String myName, int myid) { 
        name = myName; 
        id = myid;
    } 
    public void eat(){ 
        System.out.println(name+"正在吃"); 
    }
    public void sleep(){
        System.out.println(name+"正在睡");
    }
    public void introduction() { 
        System.out.println("大家好!我是"         + id + "号" + name + "."); 
    } 
}

 企鹅类:

public class Penguin extends Animal { 
    public Penguin(String myName, int myid) { 
        super(myName, myid); 
    } 
}

 老鼠类:

public class Mouse extends Animal { 
    public Mouse(String myName, int myid) { 
        super(myName, myid); 
    } 
}

 

继承的特性:

子类拥有父类非private得属性,方法。

子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。

子类可用自己的方式实现父类的方法。

java的继承是单继承,但是可以通过接口实现多重继承。

提高了类之间的耦合度。

 

继承关键字。

public class Animal { 
    private String name;   
    private int id; 
    public Animal(String myName, String myid) { 
        //初始化属性值
    } 
    public void eat() {  //吃东西方法的具体实现  } 
    public void sleep() { //睡觉方法的具体实现  } 
} 
 
public class Penguin  extends  Animal{ 
}

 implements关键字

使用implements关键字可以变相的使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口。

public interface A {
    public void eat();
    public void sleep();
}
 
public interface B {
    public void show();
}
 
public class C implements A,B {
}

super与this关键字

super关键字:我们可以通过super关键字来事项对弗雷成员的访问,用来引用当前对象的父类。

this关键字:指向自己的引用

 

final关键字

final关键字声明类可以吧类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写。

 

构造器:

子类不能继承父类的构造器,但是父类的构造器带有参数的,则必须在子类的构造器中显示的通过super关键字显示的调用父类的构造器并配以适当的参数列表。如果弗雷有无参构造器,则在子类的构造器中用super调用父类构造器不是必须的,如果没有使用super关键字,系统会自动调用父类的无参构造器。

 

java继承

标签:div   自动   jpg   extend   企鹅   intro   实例   show   调用   

原文地址:http://www.cnblogs.com/lywh/p/6369810.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!