java抽象类和接口
抽象类
关键字abstract:可以修饰类也可以修饰方法,抽象方法无方法体
public abstract class Person {
public abstract void getPerson();
}
举例1:抽象类可以有属性,非抽象方法以及抽象方法
public abstract class Person {
String name;
int age;
public abstract void getPerson();
public void getInformation() {
System.out.println("name:" + name + ",age:" + age);
}
}
举例2:抽象类中有抽象方法,被子类继承时,子类必须重写抽象方法或者子类也为抽象类
// Person.java文件
public abstract class Person {
String name;
int age;
public abstract void getPerson();
public void getInformation() {
System.out.println("name:" + name + ",age:" + age);
}
}
// Student.java文件
public abstract class Student extends Person{
}
// Teacher.java文件
public class Teacher extends Person{
@Override
public void getPerson() {
System.out.println("student");
}
}
接口
接口的定义用interface关键字,实现用implements,可以实现多个接口
public interface Person {
}
举例1:接口的属性:修饰符为public static final,接口的方法:修饰符为public abstract。属性和方法的修饰符可写可不写,一般不写。属性必须赋值并且为常量,一般接口不会定义属性
public interface Person {
String name = "zhangsan";
public static final int age = 18;
void getPerson();
public abstract void getInformation();
}
举例2:接口的实现
// Person.java文件
public interface Person {
void getInformation();
}
// Student.java文件
public class Student implements Person{
@Override
public void getInformation() {
System.out.println("student");
}
}
举例3:实现多个接口
// Person.java文件
public interface Person {
void getInformation();
}
// Student.java文件
public interface Student {
void study();
}
// child.java文件
public class child implements Person, Student {
@Override
public void getInformation() {
System.out.println("child");
}
@Override
public void study() {
System.out.println("study");
}
}
举例4:接口可以继承多个接口,类只能继承一个类
// Person.java文件
public interface Person {
void getInformation();
}
// Student.java文件
public interface Student {
void study();
}
// child.java文件
public interface child extends Person, Student{
void play();
}
// Pupil.java文件
public class Pupil implements child {
@Override
public void play() {
System.out.println("play");
}
@Override
public void getInformation() {
System.out.println("pupil");
}
@Override
public void study() {
System.out.println("study");
}
}
//Teacher.java文件
public class Teacher{
}
// Manager.java文件
public class Manager {
}
// Headmaster.java文件
public class Headmaster extends Teacher, Manager {
} //报错
浙公网安备 33010602011771号