继承:复用已经定义好的类,减少重复代码编写
接口:类似于USB接口,只要是USB数据线,是不是插上后都能起作用呀
多态:多态就是通过同一个接口使用不同的对象而执行不同操作
1.接口: interface定义接口,implements实现接口
现在给出一个例子:三个类分别是:USB类(接口),keyboard类(键盘实现接口),Test类(写个主函数测试一下)
USB类(接口),注意:接口里面的方法(函数)只写声明,接口中的方法必须加abstract(表示抽象方法)
//定义一个USB接口,接口里面的函数只写声明
public interface USB {
public abstract void plugln();
public abstract void work();
}
keyboard类(键盘实现接口),@Override是注解(告诉编译器下面的函数是重写的函数),最好写上,必须把接口所有方法都重写一遍
//键盘实现USB接口
public class keyboard implements USB{
@Override
public void plugln(){
System.out.println("qudong");
}
@Override
public void work(){
System.out.println("work");
}
}
Test类(写个主函数运行测试一下),实例化一个对象并且调用work函数
public class Test{
public static void main(String[] args) {
keyboard cnm = new keyboard();//创建一个键盘
cnm.work();
}
}
在JDK中怎么运行?
分别创建3个文本,改扩展名为 .java,然后分别把3段代码复制并保存,分别编译成字节码文件,最后运行Test就能看到结果显示work。
2.继承(用关键字extends)------------------------------------------------
父类:Employee类
//父类
public class Employee{
String name;
int age;
public String cnm()
{
return "我嫩爹";
}
}
子类:Manager类
//子类
public class Manager extends Employee{
}
Test类(主函数)
public class Test{
public static void main(String[] args) {
Manager objec = new Manager();//创建一个对象
System.out.println(objec.cnm());
}
}
3.多态(重写和重载)--------------------------------------------------------
重写:以继承举例
父类:Employee类
//父类
public class Employee{
String name;
int age;
public String cnm()
{
return "我嫩爹";
}
}
子类重写:Manager类
//子类
public class Manager extends Employee{
@Override
public String cnm()
{
return "爸爸,我是你儿子";
}
}
Test类(主函数)
public class Test{
public static void main(String[] args) {
Manager objec = new Manager();//创建一个对象
System.out.println(objec.cnm());
}
}
重载:同一个类中函数名相同,参数不同的函数。是不是感觉跟构造器差不多,但是又不一样。
构造器是函数名跟类名相同且创建对象时自动调用。
下面看个重载的栗子
重载类:Sum类(3种求和函数)
//重载
public class Sum{
public int sum(int a1)
{
return a1;
}
public int sum(int a1, int a2)
{
return a1+a2;
}
public int sum(int a1, int a2, int a3)
{
return a1+a2+a3;
}
}
Test类(主函数)
public class Test{
public static void main(String[] args) {
Sum cnm = new Sum();
System.out.println(cnm.sum(2));
System.out.println(cnm.sum(2,3));
System.out.println(cnm.sum(2,3,4));
}
}