java 抽象类 抽象方法被调用 static 方法不能被复写
2016-03-20 13:26
671 查看
父类代码如下:
public abstract class Animal {
public float weight;
public float height;
public void practice() { //static 是类方法,不能被子类复写
run(); // 在抽象类中,abstract 方法可以被非abstract 方法调用,
eat(); //但是直到abstract 方法被复写,这个非abstract 方法才能被执行
System.out.println("practice is over!");
}
public abstract void run(); //这个已经是abstract 方法了,则不能再是static 方法。static 不能修饰abstract,abstract是必须被复写的方法,static 是不能被复写,矛盾
public abstract void eat();
public static void main(String[] args) {
//由以下两句代码可知,abstract 类的非abstract 方法也没法直接被外界用,abstract 除了被继承,一无所用
//Animal.practice(); //本句错,practice() 不是static 方法,不能被类调用
//Animal a = new Animal();//本句错,abstract 类不能实例化方法。
}
}
子类代码如下:
public abstract class Animal {
public float weight;
public float height;
public void practice() { //static 是类方法,不能被子类复写
run(); // 在抽象类中,abstract 方法可以被非abstract 方法调用,
eat(); //但是直到abstract 方法被复写,这个非abstract 方法才能被执行
System.out.println("practice is over!");
}
public abstract void run(); //这个已经是abstract 方法了,则不能再是static 方法。static 不能修饰abstract,abstract是必须被复写的方法,static 是不能被复写,矛盾
public abstract void eat();
public static void main(String[] args) {
//由以下两句代码可知,abstract 类的非abstract 方法也没法直接被外界用,abstract 除了被继承,一无所用
//Animal.practice(); //本句错,practice() 不是static 方法,不能被类调用
//Animal a = new Animal();//本句错,abstract 类不能实例化方法。
}
}
子类代码如下:
public class Cat extends Animal{ @Override public void practice(){ //子类只能复写父类的非static 方法,父类的static 方法不能被复写 } @Override public void run() { //abstract 的方法必须被复写 } @Override public void eat() { } }
相关文章推荐
- java 认识异常
- JAVA 集合
- hbm2java和hbm2ddl的使用步骤
- 20145216史婧瑶《Java程序设计》第3周学习总结
- spring mvc 400 Required String parameter 'quizId' is not present 前端参数找不到
- java画板总结
- Java开发环境搭建
- 《java学习的一些概念》
- [排序算法]——冒泡排序
- 输入/输出(一)——编码,文件类,随机读写文件类
- hibernate和spring整合时出现的数据库连接问题
- STS: Spring Boot and Hibernate
- 【JAVA集合】HashSet、LinkedHashSet、TreeSet
- Java static关键字
- java设计模式5-命令模式
- java关于插入排序—希尔排序的理解,以及冒泡排序的改进
- 20145238-荆玉茗 《Java程序设计》第3周学习总结
- org.springframework.web.servlet.ModelAndView
- org.springframework.web.servlet.ModelAndView
- Eclipse中运行出现selection does not contain a main type错误