首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

类的承袭总结

2013-10-27 
类的继承总结1、类的继承???? 目的:1、提高代码的重用性。????????????? 2、减小工作量。????????????? 3、提高

类的继承总结

1、类的继承

???? 目的:1、提高代码的重用性。

????????????? 2、减小工作量。

????????????? 3、提高代码的扩展性。

???? 语法:extends关键字

???? public 子类名 extends 父类名{

?

???? }

?

?

public class Student {    //学生学习的方法public void study(){System.out.println(name+"正在学习");}public void setName(String name){this.name = name;}public String getName(){return name;}private String name;}

?

public class UNStudent extends Student {    public static void main(String []args){    UNStudent uns = new UNStudent();    uns.setName("京京");    uns.study();        }    //重写父类方法    public void study(){        System.out.println(getName()+"学习独立自主");    }    }

?

2、方法的重写

?????前提:1、两个类必须具有继承关系。

????????????? 2、重写的方法在父类中必须存在。

???? 调用:子类及父类中的对象均可调用重写的方法,且均执行重写后的方法。若子类没有该方法,则执行父类的方法。

???? 与重载的区别:

?????????? 重载:方法名相同,但参数类型、数量或顺序必有一不同。

??????????????????? 在同一类中或有继承关系的类中均可重载。

?????????? 重写:方法名、参数类型、数量、顺序必须完全相同,访问修饰符可以不同,但子类必须大于或等于父类。

??????????????????? 只发生在有继承关系的类中。

3、自动转型

???? 方向:由子类自动转为父类

?????前提:两个对象所在的类存在继承关系

???? 语法:

?????????? [1]直接自动转型

?????????? 父类名? 对象名 = new 子类构造函数();

?????????? Student???stu? =?new? UNStudent();

?????????? [2]在方法中进行自动转型

??????????? 子类名? 对象名 = new 子类构造函数();

????????????UNStudent???unstu? =?new? UNStudent();

?

??????????? teach(unstu);

??????????? 访问修饰符 返回值类型 方法名(父类名 参数名){

??????????? }

??????????? public? void teach (Student stu){

??????????? }

??????????? 不必管创建对象左边的部分,只要看右边new的构造函数是子类还是父类,如果是子类,则优先调用子类的方法。

4、多态
????????? java中多态是由类的继承、方法重写、方法重载、自动转型导致的一系列问题。
??????????java在编译的时候,无法确定最终要执行的方法是谁的,就直接去父类中找是否有该方法,如果没有则直接报错,如果有则通过编译;单词可以在运行的时候知道最终要执行的方法是谁的。??

?

?

?

?

?

?

?

热点排行