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

【java】Java的继承,方法重写,访问权限

时间:2015-05-10 15:46:07      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:java   面向对象   

继承

**首先面向对象的三大特性:
1. 封装
2. 继承
3. 多态**

语法

      class Subclass extends Superclass{ }

作用

  1. 继承的出现提高了代码的复用性。
  2. 继承的出现让类与类之间产生了关系,提供了多态的前提。
  3. 不要仅为了获取其他类中某个功能而去继承

例子

class Person {
    String name;
    int age;
}

/*继承与Person类*/
class Student extends Person {
    int weight;
}
  • Student类继承了Person类,他拥有了Person类的所有成员变量
  • Student类拥有自己的一个成员变量
  • 如果Person类里里面的变量是private的,子类就不能直接访问了,只能通过get和set函数
  • Java中只有单继承,也就是一个子类只能继承一个父类

子类和父类构造器的调用

  1. 子类中所有的构造器默认都会访问父类中空参数的构造器
  2. 当父类中没有空参数的构造器时,子类的构造器必须通过this(参数列表)或者super(参数列表)语句指定调用本类或者父类中相应的构造器,且必须放在构造器的第一行
  3. 如果子类构造器中既未显式调用父类或本类的构造器,且父类中又没有无参的构造器,则编译出错
class Person {
    String name;
    int age;

    Person() {
        System.out.println("Person的构造器!");
    }
}

class Student extends Person {

    Student() {
        System.out.println("Student的构造器!");
    }

    int weight;
}

结果:

Person的构造器!
Student的构造器!

方法重写

要求

  1. 重写方法必须和被重写方法具有相同的方法名称、参数列表和返回值类型。
  2. 重写方法不能使用比被重写方法更严格的访问权限。
  3. 重写和被重写的方法须同时为static的,或同时为非static的
  4. 子类方法抛出的异常不能大于父类被重写方法的异常
class Person {
    String name;
    int age;

    public void say() {
        System.out.println("I am person!");
    }
}

class Student extends Person {
    int weight;

    public void say() {
        System.out.println("I am student!");//方法重写
    }
}

下面这个情况不是方法重写

class Person {
    String name;
    int age;

    public void say() {
        System.out.println("I am person!");
    }
}

class Student extends Person {
    int weight;

    private void say() {
        System.out.println("I am student!");//不是方法重写
    }
}

访问权限

技术分享

【java】Java的继承,方法重写,访问权限

标签:java   面向对象   

原文地址:http://blog.csdn.net/ttf1993/article/details/45620997

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