java的继承和多态小结

1、为什么要继承?如何继承?继承到了什么?
比如我们定义了一个学生类,所有的学生都拥有一些特定的属性和方法。但如果这个系统应用于大学生的话,又会有许多的大学生类中特有的属性和方法。这时就不必在重新定义一个大学生类了,我们可以让他继承学生类。
首先我们先定义一个学生类:
package cjl.extend0926;
/**
* 学生类
* @author wyz
*
*/
public class Student {

public Student(){

}

/** 名字属性*/
public String name;


/**
* 设置名字的方法
* @param s 要设置为名字的字符串
*/
public void setName(String s){
name = s;
}

/**
* 学生学习的方法
*/
public void study(){
System.out.println(name+"在学习");
}


}
然后通过extends关键字让大学生类继承上面的学生类:
public class UNStudent extends Student{

/**
* 子类特有的方法
* 私有的属性和方法能够被继承到,但不能直接使用
*/
public void cet4(){
System.out.println(name+"是大学生,要考试四级!!");
}


/**
* 方法的重写
* 重写:子类重新实现父类中的方法
* 方法名,参数,返回值都一样,仅仅是方法体不一样
*/
public void study(){
System.out.println(name+"是大学生,在学习");
}
}

我们称UNSstudent为子类,Student叫UNStudent的父类,UNStudent中就自动具有了Student中定义的属性和方法了。
执行代码:
public static void main(String args[]){

//大学生对象
UNStudent stu2 = new UNStudent();
stu2.setName("李四");
stu2.study();
}
输出结果:
李四在学习
需要强调一点的是父类的构造方法不能够被子类继承。
2、自动转型和强制转型
自动转型指的是子类对象会自动的转化为父类类型,对象在调用父类的方法时,如果子类重写了父类的方法,调用的就是子类的实现,否则就调用父类的方法。
另外需要注意的几点:
1.子类特有的属性和方法,只能是子类类型的对象才调用
2.对象声明的是什么类型,就只能调用这个类(及父类)中定义的方法
3.一个类中的属性和方法,只能是这个类(及子类)的对象才能调用
如代码:
//自动转型
//子类对象的类型可以自动转成父类类型
Student stu3 = new UNStudent();
stu3.setName("王五");

//4.一个对象调用的方法是父类还是子类的,取决于对象本身的类型
stu3.study();
运行结果:
王五是大学生,在学习
强制转型指的是将父类类型的对象强制转化为子类类型。因此强制转型可能会发生逻辑错误。一个对象可以被强制转型,肯定是在前面某个地方被自动转型了。一个对象被自动转成父类类型后还想调用子类特有的方法,就必须强制转型。
代码:
UNStudent stu4 = (UNStudent)stu3;
stu4.cet4();
运行结果:
王五是大学生,要考试四级!!
3、方法的重写和重载
在上例中大学生和学生的学习方法应该是不一样的,所以有必要在子类中对父类的方法进行重写。重写就是保持方法的定义不变(包括方法名、参数、返回值),但方法内部实现同父类不同。
如上例中的public void study(){}方法。
如果子类中重写了父类的方法,子类的对象在调用时则调用的是子类的方法,否则则调用父类的。
方法的重载指的是在同一类中可以出现同名的方法,方法的参数、返回值及函数体不同。对象在调用时根据其所含参数及返回值类型调用相应的函数。
如:public int study(){}
public int study(int a){}
public void study(){}

4、多态的理解
多态性指的是由于继承和重写机制,相同的对象在调用相同的方法时,得到的结果可能不一样。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值