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去掉
代码结果为:
我喜欢躺着看书