如果子类实现了抽象类的全部抽象方法,那么子类就不是抽象类:
public class Human { //定义父类Human
//定义问候方法sayHello,没有具体实现
public void sayHello() {
}
}
class Chinese extends Human{ //继承父类Human
//重载问候方法sayHello
public void sayHello() {
System.out.println("hello,Chinese");
}
}
class American extends Human{ //继承父类Human
public void sayHello() {
System.out.println("hello,American");
}
}
class TestClass{ //测试类
public static void main(String[] args) {
Chinese c=new Chinese();
c.sayHello();
American a=new American();
a.sayHello();
}
}
如果子类没有实现抽象类的全部抽象方法,那么子类也是抽象类:
ublic abstract class AbstractClass { //定义抽象类AbstractClass
//定义一般方法test1,必须包含方法体
public void test1() {
System.out.println("this is test1!");
}
//定义一般方法test2,不包含方法体
public abstract void test2() ;
}
class SubClass extends AbstractClass{ //定义类subClass,继承了抽象类AbstractClass
//实现了抽象类中的test2方法
public void test2() {
System.out.println("this is test12");
}
public static void main(String args[]) {
SubClass sc=new SubClass();
sc.test1(); //调用父类的方法test1
sc.test2(); //调用父类的方法test2
}
}