方法重载

在一个类中,我们可以定义多个方法。如果有一系列方法,它们的功能都是类似的,只有参数有所不同,那么,可以把这一组方法名做成同名方法。例如,在Hello类中,定义多个hello()方法: class Hello { public void hello() { System.out.println("Hello, world!"); } public void hello(String name) {
方法重载

继承

在前面的章节中,我们已经定义了Person类: class Person { private String name; private int age; public String getName() {...} public void setName(String name) {...} public int getAge() {...} public void setAge(int age)
继承

多态

在继承关系中,子类如果定义了一个与父类方法签名完全相同的方法,被称为覆写(Override)。 例如,在Person类中,我们定义了run()方法: class Person { public void run() { System.out.println("Person.run"); } } 在子类Student中,覆写这个run()方法: class Student extends Perso
多态

抽象类

由于多态的存在,每个子类都可以覆写父类的方法,例如: class Person { public void run() { … } } class Student extends Person { @Override public void run() { … } } class Teacher extends Person { @Override public void run() { … }
抽象类

接口

在抽象类中,抽象方法本质上是定义接口规范:即规定高层类的接口,从而保证所有子类都有相同的接口实现,这样,多态就能发挥出威力。 如果一个抽象类没有字段,所有方法全部都是抽象方法: abstract class Person { public abstract void run(); public abstract String getName(); } 就可以把该抽象类改写为接口:interface
接口

静态字段和静态方法

在一个class中定义的字段,我们称之为实例字段。实例字段的特点是,每个实例都有独立的字段,各个实例的同名字段互不影响。 还有一种字段,是用static修饰的字段,称为静态字段:static field。 实例字段在每个实例中都有自己的一个独立“空间”,但是静态字段只有一个共享“空间”,所有实例都会共享该字段。举个例子: class Person { public String name; pub
静态字段和静态方法

在前面的代码中,我们把类和接口命名为Person、Student、Hello等简单名字。 在现实中,如果小明写了一个Person类,小红也写了一个Person类,现在,小白既想用小明的Person,也想用小红的Person,怎么办? 如果小军写了一个Arrays类,恰好JDK也自带了一个Arrays类,如何解决类名冲突? 在Java中,我们使用package来解决名字冲突。 Java定义了一种名字
包

作用域

在Java中,我们经常看到public、protected、private这些修饰符。在Java中,这些修饰符可以用来限定访问作用域。 public 定义为public的class、interface可以被其他任何类访问: package abc; public class Hello { public void hi() { } } 上面的Hello是public,因此,可以被其他包的类访问:
作用域