A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sabrina妖儿 中级黑马   /  2015-11-13 20:37  /  299 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

super是表示父类那边的。this是代表当前类。可是都是在哪些情况下用呢,一直很混乱。求代码解释

3 个回复

正序浏览
super:  当子类重写父类的方法后, 子类的对象将无法访问父类被重写的方法,  为解决该问题,   可以使用super关键字来访问父类的成员.
回复 使用道具 举报
class Person {
        private String name;                                        //姓名
        private int age;                                                //年龄

        public Person() {}                                                //空参构造

        public Person(String name,int age) {        //有参构造
                this.name = name;
                this.age = age;
        }

        public void setName(String name) {                //设置姓名
                this.name = name;
        }

        public String getName() {                                //获取姓名
                return name;
        }

        public void setAge(int age) {                        //设置年龄
                this.age = age;
        }

        public int getAge() {                                        //获取年龄
                return age;
        }

        public void eat() {                                                //吃饭
                System.out.println(name  + "吃饭");
        }
}

class Student extends Person {
        public Student() {}                                                //空参构造

        public Student(String name,int age) {
                super(name,age);
        }

        public void study() {
                System.out.println(this.getName() + "学习");
        }
}

class Teacher extends Person {
        public Teacher() {}                                                //空参构造

        public Teacher(String name,int age) {
                super(name,age);
        }

        public void teach() {
                System.out.println(this.getName() + "讲课");
        }
}
回复 使用道具 举报
继承的时候,super和this不能同时使用.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马