抽象类:abstract。 继承抽象类 extends
1、使用abstract声明类、方法
2、抽象类中可以有普通方法
3、抽象类不能被实例化,只能被子类继承(如果子类不是抽象类,则必须重写父类中的抽象 方法)
4、抽象类不能使用final声明、不能使用private修饰
public abstract class Pather{
// 抽象方法没有方法体
public abstract void add();
public abstract String getName();
// 抽象类中可以有普通方法
public void say(){
System.out.println("普通方法")
}
}
public class Demo extends Pather{
String name = "张三";
public static void main(String[] args){
Demo a = new Demo();
a.add();
System.out.println(a.getName);
a.say();
}
// 重写抽象类中的抽象方法
public void add(){
System.out.println("重写父类add方法");
}
public String getName(){
return this.name;
}
}
接口: interface。实现接口 implements
1、接口中的方法都是抽象方法
2、接口中的属性都是全局常量
3、接口可以多实现
// 接口定义的语法
// interface 接口名{
// 全局常量
// 抽象方法
// }// 接口的优点
// 1、降低程序耦合度
// 2、易于程序扩展
// 3、有利于维护
// 因为接口本身是由全局常量和抽象方法组成,所以接口的成员定义都可以简写
// 全局常量可以省略 public static final String INFO = "info";
// 简写后
// String INFO = "info";// 抽象方法可以省略 public abstract
// public abstract void print();
// 简写后
// void print();// 接口多实现
// 语法
// class 子类 extends 父类 implements A,B{}
// 定义接口
public interface Person{
String TYPE = “person”;
void say();
}
public Student implements Person{
// Student类实现Person接口
@override
public void say(){
System.out.println("学生")
}
}