zoukankan      html  css  js  c++  java
  • java7-4 继承的练习

    1、Override和Overload的区别,Overload能改变返回值类型吗?

    答:

    Override就是方法重写:在子类中,出现和父类中一模一样的方法声明的现象

    Overload就是方法重载:在同一类中,出现的方法名相同,参数列表不同的现象

    Overload可以改变返回值类型,因为它和返回值类型无关

    2、this关键字和super关键字分别代表什么?以及他们各自的使用场景

    答:

    this:代表当前类的对象引用

    super:代表父类存储空间的标识(也就是父类的引用,通过这个可以访问父类的成员)

    场景:

    成员变量:this.成员变量 super.成员变量

    构造方法:this.(...) super(...)

    成员方法:this.成员方法 super.成员方法

    1、练习:

      1 /*
      2 
      3 学生案例和老师案例讲解
      4 
      5 学生:
      6 
      7 成员变量;姓名,年龄
      8 
      9 构造方法:无参,带参
     10 
     11 成员方法:getXxx()/setXxx()
     12 
     13 老师:
     14 
     15 成员变量;姓名,年龄
     16 
     17 构造方法:无参,带参
     18 
     19 成员方法:getXxx()/setXxx()
     20 
     21 看上面两个类的成员,发现了很多相同的东西,所以我们就考虑抽取一个共性的类:
     22 
     23 人:
     24 
     25 成员变量;姓名,年龄
     26 
     27 构造方法:无参,带参
     28 
     29 成员方法:getXxx()/setXxx()
     30 
     31 学生 继承 人
     32 
     33 老师 继承 人
     34 
     35 */
     36 
     37 //定义人类
     38 
     39 class Person {
     40 
     41 //姓名
     42 
     43 private String name;
     44 
     45 //年龄
     46 
     47 private int age;
     48 
     49 public Person() {
     50 
     51 }
     52 
     53 public Person(String name,int age) { //"林青霞",27
     54 
     55 this.name = name;
     56 
     57 this.age = age;
     58 
     59 }
     60 
     61 public String getName() {
     62 
     63 return name;
     64 
     65 }
     66 
     67 public void setName(String name) {
     68 
     69 this.name = name;
     70 
     71 }
     72 
     73 public int getAge() {
     74 
     75 return age;
     76 
     77 }
     78 
     79 public void setAge(int age) {
     80 
     81 this.age = age;
     82 
     83 }
     84 
     85 }
     86 
     87 //定义学生类
     88 
     89 class Student extends Person {
     90 
     91 public Student() {}
     92 
     93 public Student(String name,int age) { //"林青霞",27
     94 
     95 //this.name = name; 这样子出错,因为name和age是private的,私人的,这样无法访问的。
     96 
     97 //this.age = age; 而如果都不写,则直接走父类的无参构造。结果是 null 0
     98 
     99 super(name,age); //正确的,显示地调用父类的带参构造
    100 
    101 }
    102 
    103 }
    104 
    105 //定义老师类
    106 
    107 class Teacher extends Person {
    108 }
    109 
    110 class ExtendsTest4 {
    111 
    112 public static void main(String[] args) {
    113 
    114 //创建学生对象并测试
    115 
    116 //方式1
    117 
    118 Student s1 = new Student();
    119 
    120 s1.setName("林青霞");
    121 
    122 s1.setAge(27);
    123 
    124 System.out.println(s1.getName()+"---"+s1.getAge());
    125 
    126 //方式2
    127 
    128 Student s2 = new Student("林青霞",27);
    129 
    130 System.out.println(s2.getName()+"---"+s2.getAge());
    131 
    132 //补齐老师类中的代码并进行测试。
    133 
    134 }
    135 
    136 }

    2、练习

      1 package java8;
      2 
      3 /*
      4 
      5 猫狗案例讲解
      6 
      7 先找到具体的事物,然后发现具体的事物有共性,才提取出一个父类。
      8 
      9 猫:
     10 
     11 成员变量:姓名,年龄,颜色
     12 
     13 构造方法:无参,带参
     14 
     15 成员方法:
     16 
     17 getXxx()/setXxx()
     18 
     19 eat()
     20 
     21 palyGame()
     22 
     23 狗:
     24 
     25 成员变量:姓名,年龄,颜色
     26 
     27 构造方法:无参,带参
     28 
     29 成员方法:
     30 
     31 getXxx()/setXxx()
     32 
     33 eat()
     34 
     35 lookDoor()
     36 
     37 共性:
     38 
     39 成员变量:姓名,年龄,颜色
     40 
     41 构造方法:无参,带参
     42 
     43 成员方法:
     44 
     45 getXxx()/setXxx()
     46 
     47 eat()
     48 
     49 把共性定义到一个类中,这个类的名字叫:动物。
     50 
     51 动物类:
     52 
     53 成员变量:姓名,年龄,颜色
     54 
     55 构造方法:无参,带参
     56 
     57 成员方法:
     58 
     59 getXxx()/setXxx()
     60 
     61 eat()
     62 
     63 猫:
     64 
     65 构造方法:无参,带参
     66 
     67 成员方法:palyGame()
     68 
     69 狗:
     70 
     71 构造方法:无参,带参
     72 
     73 成员方法:lookDoor()
     74 
     75 */
     76 
     77  
     78 
     79 class dongWu{
     80 
     81 // 成员变量
     82 
     83 private String name;
     84 
     85 private String color;
     86 
     87 private int age;
     88 
     89 //无参构造方法
     90 
     91 public dongWu(){}
     92 
     93 //成员方法
     94 
     95 public void show(String name,String color,int age){
     96 
     97 this.name = name;
     98 
     99 this.color = color;
    100 
    101 this.age = age;
    102 
    103 }
    104 
    105 //成员方法
    106 
    107 public String getName(){
    108 
    109 return name;
    110 
    111 }
    112 
    113 public String getColor(){
    114 
    115 return color;
    116 
    117 }
    118 
    119 public int getAge(){
    120 
    121 return age;
    122 
    123 }
    124 
    125 public void setName(String name){
    126 
    127 this.name = name;
    128 
    129 }
    130 
    131 public void setColor(String color){
    132 
    133 this.color = color;
    134 
    135 }
    136 
    137 public void setAge(int age){
    138 
    139 this.age = age;
    140 
    141 }
    142 
    143 public void sleep(){
    144 
    145 System.out.println("ZZzzz.....");
    146 
    147 }
    148 
    149 }
    150 
    151 class Cat extends dongWu{
    152 
    153 //无参构造方法
    154 
    155 public Cat(){}
    156 
    157 //有参构造方法
    158 
    159 public Cat(String name,String color,int age)
    160 
    161 {
    162 
    163 super.show(name, color, age);
    164 
    165 }
    166 
    167 public void play(){
    168 
    169 System.out.println("猫玩毛球。。。。");
    170 
    171 }
    172 
    173 }
    174 
    175 class Dog extends dongWu{
    176 
    177 //无参构造方法
    178 
    179 public Dog(){}
    180 
    181 //有参构造方法
    182 
    183 public Dog(String name,String color,int age)
    184 
    185 {
    186 
    187 super.show(name, color, age);
    188 
    189 }
    190 
    191 public void look(){
    192 
    193 System.out.println("看门?犯二!");
    194 
    195 }
    196 
    197 }
    198 
    199 class ExtendsText2{
    200 
    201 public static void main(String[] args){
    202 
    203 //方法1
    204 
    205 Cat c1 = new Cat();
    206 
    207 c1.setName("短尾猫");
    208 
    209 c1.setColor("虎纹");
    210 
    211 c1.setAge(1);
    212 
    213 System.out.println(c1.getName()+" "+c1.getColor()+" "+c1.getAge());
    214 
    215 c1.play();
    216 
    217 Dog d1 = new Dog();
    218 
    219 d1.setName("哈士奇");
    220 
    221 d1.setColor("白");
    222 
    223 d1.setAge(1);
    224 
    225 System.out.println(d1.getName()+" "+d1.getColor()+" "+d1.getAge());
    226 
    227 d1.look();
    228 
    229 //方法2
    230 
    231 Cat c2 = new Cat("短尾猫","虎纹",1);
    232 
    233 System.out.println(c2.getName()+" "+c2.getColor()+" "+c2.getAge());
    234 
    235 c2.play();
    236 
    237 Dog d2 = new Dog("二哈","白",1);
    238 
    239 System.out.println(d2.getName()+" "+d2.getColor()+" "+d2.getAge());
    240 
    241 d2.look();
    242 
    243 }
    244 
    245 }
    何事都只需坚持.. 难? 维熟尔。 LZL的自学历程...只需坚持
  • 相关阅读:
    url中的jsessionid解释
    电脑双网卡配置
    jedis api使用
    RedisTemplate访问Redis数据结构
    动态jdk启动项目
    导入导出Excel工具类ExcelUtil
    git超详细教程
    Linux配置SSH免用户免密码登陆
    hdfs shell的基本操作以及hdfsWeb查看文件
    清除redis的特定前缀的key
  • 原文地址:https://www.cnblogs.com/LZL-student/p/5858765.html
Copyright © 2011-2022 走看看