//基本类
public class Manager extends Person implements Job{
}
//抽象类
public abastract class Person{
String id;
String name;
int age;
//对应get和set方法
public abstract String goodAt();}
//接口
public interface Job{
//abstract可有可无
public abastract String getJobName();
public int getSalary();}
//最终类
public final class Math extends Object{
}
使用关键字abstract声明的类称为抽象类,使用abstract声明的成员方法为抽象方法,抽象类通常包含抽象方法,抽象方法是只有方法声明而没有方法体的成员方法。
抽象类不能被实例化。
抽象类中可以不包含抽象方法,但是包含抽象方法的类必须声明为抽象类。抽象方法必须被子类覆盖。
最终类不能被继承。
接口
接口是一组常量和抽象方法的集合。在Java中接口是一种引用数据类型。接口的作用是提供方法声明与方法实现分离的机制,使多个类之间表现出共同的行为能力。
它有一下的特点。
1)接口及接口成员的访问权限都是public。
2)接口中的成员方法都是公有的抽象的实例成员方法。
3)接口中所有的抽象方法必须被实现接口的类全部覆盖。
4)接口中的成员变量都是常量。
5)接口不能被实例化。
6)接口是引用数据类型。
接口与抽象类
相同点:
两者都包含抽象方法,都不能被实例化。
两者都是引用数据类型,其变量可以被赋值为子类或者实现接口的类的对象。
不同点:
抽象类约定多个子类之间共同使用的方法;接口约定多个互不相关类之间共同使用的方法。
抽象类与子类之间采用单继承机制;一个类实现了多个接口实现了多继承的功能。
抽象类及其类中成员具有与普通类一样的访问权限;接口中的访问权限都是public。
抽象类可以包含非抽象的方法,也可以声明构造方法;接口中的方法全部都是抽象方法。
抽象类可以声明成员变量,子类可以对成员变量赋值;接口只能声明常量。
内部类
声明内部类在一个类中包含另一个类的定义内部类可以在类、方法甚至语句块中定义内部类可以是private或protected
转载于:https://www.cnblogs.com/love-javabean/p/3667253.html