JAV中一些基本概念:构造函数、方法重载、继承、方法重写、多态。
2015-09-15 11:18
423 查看
1.构造函数:任何一个类(接口)都会有默认的构造函数,它的作用是用来构造
对象,同时初始化当前对象的一些属性,格式:public 类名(参数){}
2.方法重载:同一个类中,多个方法名相同,参数不同(参数个数、参数顺序、
参数类型)的方法互相为方法重载;
构造函数:如果构造函数被重载后,默认无参的构造函数就不存在了,如果
还需要使用默认的构造函数,则需要显性的定义出来,下面以实际函数说明
public class Student{
public String name;
//默认的构造函数,本来为隐藏的,添加一个输出证明当函数调用Student类
时执行了默认的构造函数
public Student(){
System.out.println("执行了构造函数!!");
}
//下面是默认构造函数的重载函数,同样添加输出证明该函数被执行了
public Student(String str){
name = str;
System.out.println("执行了构造函数2");
}
}
public class Test{
public static void main(String[] args){
Student stu;//声明引用变量
stu = new Student();//此处执行了默认构造函数
stu.name = "张三";
Student stu1 = new Student("李四");//此处执行了重构的构造函数
System.out.println(stu.name);
System.out.println(stu1.name);
}
}
运行Test得到输出为:执行了构造函数!!
执行了构造函数2
张三
李四
3.继承
关键字:extends
子类继承父类:子类可以继承父类的所有非私有的属性和函数
4.方法重写
定义:子类重写父类的方法,方法名和参数返回值必须都一致
5.自动转型
条件:建立在继承基础上,子类对象自动转型为父类变量
特性:转型之后的对象执行函数,如果当前函数子类重写过了,则执行的还是重写后的方法
6.多态
多态性:同一类类型的变量引用,执行同一个方法,执行结果不一致
下面通过函数的运行来说明上述四个知识点
首先创建一个Student类
public class Student{
public String name;
public int age;
public void study(){
System.out.println("学生在学习");
}
}
再创建一个MiddleStudent类
public class MiddleStudent extends Student{//此处MiddleStudent类继承了父类Student类
public void study(){
System.out.println("中学生在学习");//此处重写了父类Student类的study方法
}
public void study(String s){
System.out.println("中学生在学习1");
}//上面五行代码体现了函数重构
public void play(){
}
}
下面是调用两个类
public class Test{
public static void main(String[] args){
Student ms = new MiddleStudent();//自动转型
Student stu = new Student();
ms.name = "张三";
ms.study();
stu.study();
}
}
运行后输出为:中学生在学习
学生在学习
说明:从输出结果看到同一Student类类型的变量引用,执行同一个Study方法,执行结果不一致
体现了多态性,同时也说明多态性必须在方法重写和自动转型出现时才可能体现出来,
而方法重写和自动转型是建立在继承的基础上。
对象,同时初始化当前对象的一些属性,格式:public 类名(参数){}
2.方法重载:同一个类中,多个方法名相同,参数不同(参数个数、参数顺序、
参数类型)的方法互相为方法重载;
构造函数:如果构造函数被重载后,默认无参的构造函数就不存在了,如果
还需要使用默认的构造函数,则需要显性的定义出来,下面以实际函数说明
public class Student{
public String name;
//默认的构造函数,本来为隐藏的,添加一个输出证明当函数调用Student类
时执行了默认的构造函数
public Student(){
System.out.println("执行了构造函数!!");
}
//下面是默认构造函数的重载函数,同样添加输出证明该函数被执行了
public Student(String str){
name = str;
System.out.println("执行了构造函数2");
}
}
public class Test{
public static void main(String[] args){
Student stu;//声明引用变量
stu = new Student();//此处执行了默认构造函数
stu.name = "张三";
Student stu1 = new Student("李四");//此处执行了重构的构造函数
System.out.println(stu.name);
System.out.println(stu1.name);
}
}
运行Test得到输出为:执行了构造函数!!
执行了构造函数2
张三
李四
3.继承
关键字:extends
子类继承父类:子类可以继承父类的所有非私有的属性和函数
4.方法重写
定义:子类重写父类的方法,方法名和参数返回值必须都一致
5.自动转型
条件:建立在继承基础上,子类对象自动转型为父类变量
特性:转型之后的对象执行函数,如果当前函数子类重写过了,则执行的还是重写后的方法
6.多态
多态性:同一类类型的变量引用,执行同一个方法,执行结果不一致
下面通过函数的运行来说明上述四个知识点
首先创建一个Student类
public class Student{
public String name;
public int age;
public void study(){
System.out.println("学生在学习");
}
}
再创建一个MiddleStudent类
public class MiddleStudent extends Student{//此处MiddleStudent类继承了父类Student类
public void study(){
System.out.println("中学生在学习");//此处重写了父类Student类的study方法
}
public void study(String s){
System.out.println("中学生在学习1");
}//上面五行代码体现了函数重构
public void play(){
}
}
下面是调用两个类
public class Test{
public static void main(String[] args){
Student ms = new MiddleStudent();//自动转型
Student stu = new Student();
ms.name = "张三";
ms.study();
stu.study();
}
}
运行后输出为:中学生在学习
学生在学习
说明:从输出结果看到同一Student类类型的变量引用,执行同一个Study方法,执行结果不一致
体现了多态性,同时也说明多态性必须在方法重写和自动转型出现时才可能体现出来,
而方法重写和自动转型是建立在继承的基础上。
相关文章推荐
- lintcode-落单的数II-83
- Oralce11g新性能以及ORA-28000和ORA-28001问题的解决
- Elasticsearch中的邻近匹配【proximity Matching】
- poll
- HTTP2概述
- APP如何设计才能适配iPhone6/Plus和iPhone5?
- java中JVM的原理
- HTTP2概述
- 文件预览后续
- select
- easy ui datagrid 增,删,改,查等基本操作
- 《魔鬼搭讪学》《魔鬼约会学》读后感
- 转:SQLAIchem Tutorial
- wifi 链接流程
- 如何判断TCP包是否发送成功
- FFMPEG研究: ubuntu下录制/dev/video0/设备视频保存为mp4格式
- [leetcode]median of two sorted arrays【寻找第k小的数问题】
- JavaScript读取本地json文件
- 面向对象思想
- 带有分割线的GridView九宫格的完美实现