首页 > 代码库 > 抽象类
抽象类
当我们在描述一类事物时,发现该事物确实存在某种行为,但这种行为目前不具体,那么我们就可以抽象这种行为的声明,但是不去实现这种行为,
这个时候这种行为我们就称作抽象行为。
定义一个抽象类要注意的事项:
1、如果一个函数没有函数体,那么该函数必须用abstract修饰,把该函数修饰为抽象函数;
2、包含抽象函数的类一定是抽象类,用abstract修饰;
3、如果一个非抽象类在继承了抽象类后,必须要把该抽象类的所有抽象方法进行重写;
4、抽象类中是可以存在非抽象方法的;
5、抽象类可以不存在抽象方法,语法上是支持的;
6、抽象类是不能创建对象的,抽象类中存在抽象方法,而用创建好的对象调用抽象方法是没有意义的;
7、抽象类是存在构造函数的,其构造函数是提供给子类创建对象的时候初始化父类的属性;
abstract是不能与private、static、final共同修饰一个方法的。
abstract class Animal{
String name;
String color;
public Animal(String name,String color){
this.color=color;
this.name=name;
}
public void eat(){
System.out.println(name+"正在吃东西...");
}
public abstract void run();
}
class Fish extends Animal{
//构造方法
public Fish(String name, String color) {
super(name, color);//调用父类的构造函数初始化父类的属性
}
public void run() {
System.out.println(name+"游");
}
}
class Dog extends Animal{
public Dog(String name, String color) {
super(name, color);//调用父类的构造函数初始化父类的属性
}
public void run() {
System.out.println(name+"跑");
}
}
class Demo{
public static void main(String[] args){
Dog g = new Dog("哈士奇","白色");
g.run();
g.eat();
Fish f = new Fish("鲨鱼","灰色");
f.eat();
}
}
抽象类