Java实战入门小结——02
一:继承
1.通过extent关键字定义一个子类继承父类中的属性和方法
2.通过继承父类可以: a.减少重写代码的麻烦 b.真实形象表现现实中相似事物之间的关系
二:转型
1.自动转型——子类对象可以自动转化为父类类型
2.强制转型——通过类名称强制变换将子类转化为父类类型
三:方法的重写——子类可以根据实际情况改写其方法和属性,即生成一个方法定义一样,方法体不一样的特有的方法
四:多态性
当子类改写父类中方法后,调用对象时调用的是子类还是父类中的方法,取决于对象本身的类型,即new的是什么
以下是代码的示例:
Student主类
package cjl.extend0419; /** * 学生类 * * @author NingMan * */ public class Student { /** * 学生的名字属性 */ public String name; /** * 设置学生名字的方法 * * @param name * 要设置为名字的字符串 */ public void setName(String name) { this.name = name; } /** * 学习的方法 */ public void study() { System.out.println(name + "在学习"); } }
UNSStudent子类
public class UNStudent extends Student{ /** * 大学生特有的方法 */ public void cet4(){ System.out.println(name+"正在考试四级"); } //重写学习的方法 //方法的定义一样,方法体不一样 public void study(){ System.out.println(name+"是大学生,有大学生的学习方法"); } }public static void main(String args[]){
//创建学生对象 Student stu1 = new Student(); stu1.setName("张三"); stu1.study(); //创建大学生对象 UNStudent stu2 = new UNStudent(); stu2.setName("李四"); //3.如果子类重写了父类的方法,则子类对象会调用重写之后的方法 stu2.study(); //自动转型:子类对象的类型可以自动转成父类类型 Student stu3 = new UNStudent(); stu3.setName("宁曼"); stu3.study(); stu3.cet4(); //强制转型 UNStudent stu4 = (UNStudent)stu3; stu4.cet4(); } }