JavaSE——abstract关键字的使用

abstract关键字的使用

  1. abstract可以修饰类、方法
  2. abstract修饰类:抽象类

此类不能实例化
抽象类中一定有构造器,便于子类实例化时调用
开发中,一定要有抽象类的子类,让子类实例化

  1. abstract修饰方法:抽象方法

抽象方法只有声明,没有方法体
包含抽象方法的类一定是抽象类
当子类重写了父类的所有抽象方法后,子类才可以实例化。否则需要使用abstract进行修饰

public abstract class Creature{
		public abstract void eat();
}

class Person extends Creature{
		public void eat(){
				System.out.println("人吃饭");
		}
}

注意

  1. abstract不能用来修饰:属性、构造器
  2. abstract不能用来修饰私有方法、静态方法(重写的方法都是非静态的,静态的不是重写)、final类和方法

拓展

创建匿名子类对象

public class test {
    public static void main(String[] args){
        Person a=new Person() {
            @Override
            public void eat() {
                System.out.println("人吃饭");
            }

            @Override
            public void walk() {
                System.out.println("人走路");
            }
        };//注意这里的分号

        fun(a);
    }
    public static void fun(Person a){
        a.eat();
        a.walk();
    }
}

abstract class Person{
    public abstract void eat();
    public abstract void walk();
}
//人吃饭
//人走路

模板方法设计:将可变的部分写成抽象方法,后面调用的时候进行重写。

abstract class Template{
	
	public void fun(){
			...
			f();
			...
	}
	public abstract void f();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值