示例:当父类的某些方法 需要声明,但是又不确定如何实现时,可以将其声明抽象方法,那么这个类就是抽象类
- package com.java.Abstract_;
-
- public class Abstract01 {
- public static void main(String[] args) {
-
- }
- }
- abstract class Animal{
- private String name;
-
- public Animal(String name) {
- this.name = name;
- }
- public void eat(){
- System.out.println("这是一个动物,但是不知道吃什么..");
- }
-
-
- }
1.将该方法设计为抽象方法
2.所谓抽象方法就是没有实现的方法,没有方法体
3.当一个类存在抽象方法,需要将该类声明为abstract类4.一般来说,抽象类会被继承,有其子类实现 抽象方法
- package com.java.Abstract_;
-
- public class Abstract01 {
- public static void main(String[] args) {
-
- }
- }
- abstract class Animal{
- private String name;
-
- public Animal(String name) {
- this.name = name;
- }
- public abstract void eat();
- }
代码如下(示例):当父类的一些方法不能确定时,可以用abstract关键字来修饰该方法,这个方法就是抽象方法,用abstract来修饰该类就是抽象类。
如何把Animal做成抽象类,并让子类Cat类实现
- package com.java.Abstract_;
-
- public class AbstractDetail02 {
- public static void main(String[] args) {
-
- }
- }
- abstract class E{
- public abstract void hi();
- }
-
- abstract class F extends E{
- }
- class G extends E{
- @Override
- public void hi() {//实现E的方法
-
- }
- }
-
-
-
- abstract class D{
- public int n1=10;
- public static String name="xiaoming";
- public void hi(){
- System.out.println("hello");
- }
- public abstract void hello();
- public static void ok(){
- System.out.println("ok");
- }
- }
1.抽象类不能实例化
2.抽象类不一定包含abstract方法,也就是说,抽象类可以没有abstract方法
3.一旦类包含了abstract方法,则这个类必须声明为abstract
4.abstract只能修饰类和方法,不能修饰属性和其他的
5.抽象类可以有任意成员,比如 非抽象类方法、构造器、静态属性等等
6.抽象方法不能有主体
7.如果一个类继承了抽象类,则它必须实现抽象类的所有抽象方法,除非他自己也声明为abstract类
8.抽象方法不能使用private final 和static来修饰,因为这些关键字都是和重写相违背的