Java继承

继承

Java继承是面向对象的最显著的一个特征.继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力
JAVA不支持多继承,单继承使JAVA的继承关系很简单,一个类只能有一个父类,易于管理程序
比如:可以先定义一个类叫车,车有以下属性:车体大小,颜色,方向盘,轮胎,而又由车这个类派生出轿车和卡车两个类,为轿车添加一个小后备箱,而为卡车添加一个大货箱.
继承所表达的就是一种对象类之间的相交关系,它使得某类对象可以继承另外一类对象的数据成员和成员方法,若类B继承类A,则属于B的对象便具有类A的全部或部分性质(数据属性)和功能(操作),我们称被继承的类A为父类,而称继承类B为A的子类.

特点

继承关系是传递的.若类C继承类B,类B继承类A(多层继承),则类C既有从类B那里继承下来的属性与方法,也有从类A那里继承下来的属性与方法,还可以有自己新定义的属性和方法.继承来的属性和方法尽管是隐式的,但仍是类C的属性和方法.继承是在一些比较一般的类的基础上构造,建立和扩充新类的最有效的手段.
实例:父类

public class Person {
    private int age;
    private String name;

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Person(int age, String name) {
        this.age = age;
        this.name = name;
    }

    public Person() {
        System.out.println("Person init");
    }

    public void eat(){

    }
    public static void run(){
        System.out.println("run");
    }

}

实例:子类

public class Teacher extends Person{
    private int number;
    public Teacher() {
        System.out.println("Teacher init");
    }

    public Teacher(int age, String name, int number) {
        super(age, name);
        this.number = number;

    }
@Override
    public void eat() {
        super.eat();
        System.out.println(getName());
    }
    public static void run(){
        System.out.println( "teacher run");
    }

}

例子:使用类

public class Main {

    public static void main(String[] args) {
    // write your code here
        Teacher teacher = new Teacher(18,"老师",99);
        teacher.eat();
        Teacher.run();
        System.out.println(teacher.haha);
    }
}

继承的关键字extends
类的继承是通过关键字extends来实现,类只能单一继承 子类中就是继承父类里的变量和方法 父类的构造凼数没有被继承,这里所说的意思是指在实例化子类的对象时,在new后面不能调用父类的构造凼数,但是可以在子类的构造凼数里使用super来调用父类的构造凼数,如果没有写super这句调用,子类会自动调用父类无参的构造凼数(但要确保无参构造凼数存在,否则会出错) 可以new一个子类的对象赋给一个父类的变量,当通过这个父类的变量执行方法时,其实是执行的子类的方法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、继承 1. 概述 继承是面向对象的重要特征之一,当多个类中存在相同的属性和行为时,将这些内容抽取到单独一个类中...
    陈凯冰阅读 2,795评论 0 2
  • 一、继承 概述继承是面向对象的重要特征之一,当多个类中存在相同的属性和行为时,将这些内容抽取到单独一个类中,那多个...
    java部落阅读 3,868评论 0 0
  • 父类 static 块 1 执行 父类 静态成员staticSam1初始化 父类 静态成员staticSam2初始...
    YCix阅读 5,118评论 0 0
  • 如果文章对你有所帮助,请点喜欢并关注,这将是我最大的动力,谢谢 继承 为什么要继承 说到OOP(面向对象)的特点,...
    光哥很霸气阅读 9,179评论 0 14
  • 15年高考大作文新鲜出炉,作为一个河北人,当我看到这沉甸甸的全国I卷大作文时真的醉了。 新课标全国一卷:写一封信(...
    ee26f61b1838阅读 2,350评论 0 1