抽象类就是只声明方法的存在而不去具体实现它的类,抽象类必须被重写,必须被继承。抽象类不能被实例化,在定义抽象类时,要在关键字class前面加上关键字abstract。
``
abstract class Animals{
类名
}
import java.util.Scanner;
abstract class Animals{//抽象类定义
public String noise;//定义声音成员变量
public Animals(){
noise= “wawa”;//对变量noise进行初始化
}
public abstract void color();//定义抽象方法
}
class Cat extends Animals{//创建Animal子类Cat
private String name;
private int size;
public Cat(String name,int size){
this.name=name;
this.size=size;
}
@Override
public void color() {
// TODO Auto-generated method stub
System.out.println(“the cat color is white”+" “+this.name+” “+this.size);
}
}
class Dog extends Animals{//创建Animal子类Dog
private String name;
private int size;
public Dog(String name,int size){
this.name=name;
this.size=size;
}
@Override
public void color() {
// TODO Auto-generated method stub
System.out.println(“the dog color is black”+” “+this.name+” “+this.size);
@Override
public void color() {
// TODO Auto-generated method stub
System.out.println(“the dog color is black”+” “+this.name+” "+this.size);
}
}
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
Cat cat=new Cat(sc.next(),sc.nextInt());//
cat.color(); //输出
Dog dog=new Dog(sc.next(),sc.nextInt());
dog.color();//输出
System.out.println(cat.noise);//利用cat调用父类抽象方法
System.out.println(dog.noise);//利用dog调用父类抽象方法
}
}
``