简单举例:
package com.src7;
abstract class Animal{
public String name;
public abstract void Hello();
public Animal(String name){
this.name=name;
}
public void getName(){
this.name=name;
}
public String printName(){
return this.name;
}
}
class Dog extends Animal{
public void Hello(){
System.out.println(this.name+":汪!");
}
public Dog(String name){
super(name);
}
}
class Cat extends Animal{
public void Hello(){
System.out.println(this.name+":喵!");
}
public Cat(String name){
super(name);
}
}
public class Demo {
public static void main(String[]args){
Dog d=new Dog("小狗");
d.Hello();
Cat c=new Cat("小猫");
c.Hello();
}
}
运行结果:
知识点:
1.抽象类用abstract修饰,抽象类不能实例化对象,即不能对其new对象,例如在以上代码main部分里不能写Animal a=new Animal();
2.抽象类里可能含有构造方法和抽象方法
3.子普通类继承父抽象类要实现抽象类中的抽象方法,但子抽象类继承父抽象类不一定实现其中的抽象方法,例如在代码中再添加一个抽象类:
abstract class Bird extends Animal{
public Bird(String name){
super(name);
}
}
证明只继承抽象类不实现抽象方法也可以