五月十五学习日志(继承和重写)

1.继承

1.1继承的的概念

继承是从已有的类中派生出新类,心得类能吸收已有的类的数据属性和行为,并能扩展心得能力。

1.2继承的描述

a.多个类中存在属性和行为时,将这些内容抽取到单独一个类中,那么多个类无序再定义这些属性和行为,只需要继承那个类即可。
b.多个类可以称为子类,单独这个类称为父类或者基类。

1.3总结

1.继承提高了软件的复用性。
2.继承简化了人们对事物的认识和描述,能清晰体现相关类间的层次结构关系。
3.降低了程度的耦合性,增加了程序的易维护性。

1.4有关继承的代码

package com.lenovo.titty;
/**
 * 大雁
 * @author 11209
 *
 */
public class DaYan extends Bird{
double height;
double length;
public void jiao() {
    System.out.println("4");
}
public void run() {
    System.out.println("5");
}

}

``

package com.lenovo.titty;
/**
 * 海鸥
 * @author 11209
 *
 */
public class HaiOu extends Bird{
String eyescolor;
String mousecolor;
public void qianshui() {
    System.out.println("6");
}
public void chiyu() {
    System.out.println("7");
}
}
package com.lenovo.titty;
/**
 * 父类
 * @author 11209
 *
 */
public class Bird {
String color;
int age;
double weight;
public void fly() {
    System.out.println("1");
}
public void eat() {
    System.out.println("2");
}
public void drink() {
    System.out.println("3");
}

}
package com.lenovo.titty;
/**
 * 测试
 * @author 11209
 *
 */
public class Test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
DaYan d = new DaYan();
HaiOu h = new HaiOu();
Bird b = new Bird();
d.drink();

    }

}

代码输出结果为:
3

2.重写

2.1重写的概念

重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。

2.2方法重写的规则

1.方法名相同

2.参数列表相同

3.子类的方法的返回值类型应该比父类的返回值类型更小或者相等。

4.子类方法抛出的异常类型应该比父类抛出的异常类更小或相等

5.子类方法的访问权限应该比父类访问权限更大或相等

2.3super关键字

a.super和this的用法很像
b.this代表本类对象的引用
c.super代表父类的内存空间的标识
d.当子父类出现同名成员时,可以用super进行区分
e.子类要调用父类构造方法或者成员方法时,可以使用super语句

2.4重写代码

package com.lenovo.entity;

public class Book {

  private String name;
  private int pages;

  public void setName(){
    System.out.println("我喜欢看书");
  }
}
```
package com.lenovo.entity;

public class EBook extends Book{
  public void setName(){
    super.setName();   
    System.out.println("我喜欢躺着看书");  
  }
}
package com.lenovo.entity;

public class test{
  public static void main(String [] args){
     EBook eBook = new EBook();
     eBook.setName();   
  }

}

代码输出结果为:
我喜欢看书
我喜欢躺着看书
如果此时把子类中的super去掉
代码结果为:
我喜欢躺着看书

猜你喜欢

转载自blog.csdn.net/wxs19980929/article/details/80328100