// 抽象类
abstract class Animal {
// 抽象方法
public abstract void move();
}
//Dog类(非抽象类)继承抽象类
class Dog extends Animal {
}
以上程序编译错误:抽象类中不一定有抽象方法,抽象方法必须出现在抽象类中,Dog类继承抽象类Animal,抽象类Animal中存在抽象方法,Dog类属于子类,非抽象的,那么会将抽象方法继承过来,程序就会报错。在Dog类中,需要将从父类继承过来的抽象方法覆盖/重写,或者也可以叫做“实现”,把抽象的方法实现了:
// 抽象类
abstract class Animal {
// 抽象方法
public abstract void move();
}
//Dog类(非抽象类)继承抽象类
class Dog extends Animal {
public void move() {
}
}
重要结论:一个非抽象的类继承抽象类,必须将抽象类中的抽象方法实现。这是java语法上强制规定的,必须的,不然编译报错。这里的覆盖/重写,也可以叫做实现(对抽象的实现)public class AbstractTest {
public static void main(String[] args) {
// 面向抽象编程
// 父类型指向子类型对象
Animal a = new Dog();
a.move();
}
}
// 抽象类
abstract class Animal {
// 抽象方法
public abstract void move();
}
//Dog类(非抽象类)继承抽象类
class Dog extends Animal {
public void move() {
System.out.println("狗在吃骨头");
}
}
声明:1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!