Java基础之面向对象(三)
2014-12-07 20:36
288 查看
一、继承
1、前面我们已经知道了类,学生是一个类,小红是学生,小明也是学生,他们都属于学生,他们都有相同的属性(姓名,性别,学号)和方法(学习)。
那我们每次在需要一个学生的时候我们都需要重新写一个类吗?不!Java给我们提供了继承来解决这个问题。
比如:
3、子类可以定义自己的数据成员和成员函数,同时也可以修改父类的数据成员或重写父类的方法;
4、父类、子类都是“相对”的;
5、在Java中,Object类为特殊超类或基类,所有的类都直接或间接地继承Object;
6、Java语言只支持单继承
二、重写
1、如果子类中定义了和父类一样的方法(相同的名称和参数),这叫做方法的重写。
1、this表示当前活动对象的本身。
四、super关键字
1、super表示当前对象的父对象
2、在父类中定义了有参构造器的时候,子类就必须重载构造器。这时候就需要super了。
五、强制转型
1、和数据类型一样,类与类之间也能进行强制转换,但这种关系只能发生在子类与父类之间
比如:studentEric他实际也是一个学生,所以他能被转换成Students
1、前面我们已经知道了类,学生是一个类,小红是学生,小明也是学生,他们都属于学生,他们都有相同的属性(姓名,性别,学号)和方法(学习)。
那我们每次在需要一个学生的时候我们都需要重新写一个类吗?不!Java给我们提供了继承来解决这个问题。
比如:
//这是一个学生类 public class Students{ //定义学生的属性 String name; String id; String sex; //定义方法 public void learn(){ System.our.print(name+" like to leran Java!"); } }
//创建一个具体的学生继承学生类的所有属性 public class StudentEric extends Students{ }
//在主函数文件中调用具体的学生类(StudentEric) pulic class Main{ //主函数 public static void main(String[] args){ //通过new关键字创建studentEric的对象 StudentEric studentEric=new StudentEric(); //为studentEric赋值 studentEric.name="Eric"; studentEric.sex="Man"; studentEric.id="20120001"; //调用学习的方法 studentEric.leran(); } }2、如果子类继承了父类,则子类自动具有父类的全部数据成员(数据结构)和成员方法(功能);但是,子类对父类成员的访问有所限制;
3、子类可以定义自己的数据成员和成员函数,同时也可以修改父类的数据成员或重写父类的方法;
4、父类、子类都是“相对”的;
5、在Java中,Object类为特殊超类或基类,所有的类都直接或间接地继承Object;
6、Java语言只支持单继承
二、重写
1、如果子类中定义了和父类一样的方法(相同的名称和参数),这叫做方法的重写。
//父类学习的方法 public void learn(){ System.our.print(name+" like to leran Java!"); }
//子类重写父类的学习方法 //@Override是重写方法的标识词,他能帮助我们限制下面的方法是父类方法的重写 @Override public void learn(){ System.our.print(name+" like to leran Android!"); }三、this关键字
1、this表示当前活动对象的本身。
// public class Students{ //定义一个私有的属性,这样其他类不能直接访问这个属性 private String name; this.name=name; } }
四、super关键字
1、super表示当前对象的父对象
2、在父类中定义了有参构造器的时候,子类就必须重载构造器。这时候就需要super了。
//父类 public class Students{ //属性 String name; //构造器 public Students(Stirng name){ this.name=name; } }
//子类 public class StudentLily extens Students{ //重载构造器 public Students(String name){ super(name); } }注意:静态方法中不能使用this和super。
五、强制转型
1、和数据类型一样,类与类之间也能进行强制转换,但这种关系只能发生在子类与父类之间
比如:studentEric他实际也是一个学生,所以他能被转换成Students
pulic class Main{ //主函数 public static void main(String[] args){ //通过new关键字把studentEric强制转换为Students Students students=new StudentEric(); //为students赋值 students.name="Eric"; students.sex="Man"; students.id="20120001"; //调用学习的方法 student.leran(); } }注意:虽然studentsEric能被强制转换为Students,但是Students只能访问到studentEric继承自StudentS的内容,并不能访问studentsEric自己独特的内容。
相关文章推荐
- java基础:javascript面向对象的支持(1)
- java基础:javascript面向对象的支持(1)
- java基础4--面向对象(下)(抽象类与接口)
- Java基础3_1面向对象(2011 06 12)
- java基础整理5--面向对象的高级特性
- 【Java基础】第三讲 Java语言中的面向对象特性
- java基础4--面向对象(下)--要点总结
- 黑马程序员——Java基础之面向对象——第六篇
- java基础3--面向对象(上)(综合练习题)
- java基础之面向对象
- java基础:javascript面向对象的支持(2)
- java基础巩固训练营【第一轮】(六) 面向对象的JAVA 补充
- 一针见血谈谈面向对象的思维方法-Java基础-Java-编程开发
- java基础4--面向对象(下)(继承、final关键字)
- Java基础:第二十三讲 面向对象概述
- java基础:javascript面向对象的支持(2)
- java基础:javascript面向对象的支持(1)
- JAVA基础:JavaScript面向对象的支持(2)
- java基础整理4--面向对象
- (2011年java基础)面向对象