美文网首页
Java继承

Java继承

作者: AiSheiShei | 来源:发表于2017-03-02 20:37 被阅读0次

    继承

    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一个子类的对象赋给一个父类的变量,当通过这个父类的变量执行方法时,其实是执行的子类的方法

    相关文章

      网友评论

          本文标题:Java继承

          本文链接:https://www.haomeiwen.com/subject/domkgttx.html