一、JAVA是什么
java是一门面向对象编程语言。
二、面向对象有哪几个特性
继承性:
继承是从已有类得到继承信息创建新类的过程,提供信息的类被称为父类,得到继承信息的类被称为子类。子类继承父类的所有方法和属性。可以有多个子类同时继承一个父类,使用父类的方法,让代码不用那么复杂且减少代码量。
//父类 public class Father {} //子类 public class Son extends Father{ }
封装性:
封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。
其实就是封装到类中,如果想访问里面的数据,只需继承它的接口就行。
多态性:
是指允许不同子类型的对象对同一消息作出不同的响应。
意思大概就是同一个行为(类的方法是同名的)在不同场景(做了不同的事)下拥有不同的作用或者说功能。
三、重写和重载异同
重写和重载是多态性的体现,
重载---编译时的多态性
同一种方法,参数不同,包括参数类型不同,参数个数不同,或者二者都不同。
//重载 public class OverloadTest { public static void main(String[] args) { OverloadTest overloadTest = new OverloadTest(); overloadTest.method(1);//1 overloadTest.method(1,2);//1,2 overloadTest.method(3,3.123);//3,3.123 } public void method(int a){ System.out.println(a); } public void method(int a,int b){ System.out.println(a); System.out.println(b); } public void method(int c ,double d){ System.out.println(c); System.out.println(d); } }
重写---运行时的多态性
是发生在父类和子类中的,相同的返回类型,会覆盖原方法。都是在同一包下
public class Homework { public void method(){ System.out.println("做作业"); } }public class Maths extends Homework{ public void method(){ System.out.println("做数学作业"); } public void method1(){ System.out.println("做英语作业"); } }//重写 public class OverrideTest { public static void main(String[] args) { Homework homework = new Homework(); Maths maths = new Maths(); homework.method();//做作业 //很明显,创建maths对象,调用method方法时,被子类的方法覆盖了。 maths.method();//做数学作业 maths.method1();//做英语作业 } }