1.抽象类,abstract关键字。
1)抽象类一般只定义规则,不能new对象,只能用来被继承,子类必须实现抽象类的所有方法。
2)抽象类的方法可以是抽象方法,也可以是普通方法。
package com.oop.demo8;
public class Application {
public static void main(String[] args) {
Hero hero = new Hero();
hero.fight();
hero.speak();
}
}
package com.oop.demo8;
public abstract class GameRole {
public abstract void fight();
public void speak(){
System.out.println("The GameRole is talking.");
}
}
package com.oop.demo8;
public class Hero extends GameRole {
@Override
public void fight() {
System.out.println("The Hero is fighting. Follow me!");
}
}
2.接口,接口用于定义抽象规则,在实现接口的具体类中完成规则(方法)的具体实现,接口是Java实现“伪多继承”的重要载体。
1) Interface关键字,类可以实现(implement)
2)接口只能被实现,不能构造类(没有构造函数),不能被继承;
3)接口中定义的方法都是public abstract修饰的方法。
4)接口中定义的属性都是public static final修饰的。
package com.oop.demo9;
public class SapFI implements Finance, FinanceDoc {
@Override
public void GL() {
}
@Override
public void AP() {
}
@Override
public void AR() {
}
@Override
public String header() {
return null;
}
@Override
public String line() {
return null;
}
@Override
public void print() {
}
}
package com.oop.demo9;
public interface Finance {
void GL();
void AP();
public abstract void AR();
}
package com.oop.demo9;
public interface FinanceDoc {
public String header = "";
String header();
String line();
public abstract void print();
}