抽象类 abstract class

abstract修饰符用来修饰类和成员方法
1:用abstract修饰的类表示抽象类,抽象类位于继承树的抽象层,抽象类不能被实例化。
2:用abstract修饰的方法表示抽象方法,抽象方法没有方法体。抽象方法用来描述系统具有什么功能,但不提供具体的实现。 
abstract 规则:
1:抽象类可以没有抽象方法,但是有抽象方法的类必须定义为抽象类,如果一个子类继承一个抽象类,子类没有实现父类的所有抽象方法,那么子类也要定义为抽象类,否则的话编译会出错的。
2:抽象类没有构造方法,也没有抽象静态方法。但是可以有非抽象的构造方法
3:抽象类不能被实例化,但是可以创建一个引用变量,类型是一个抽象类,并让它引用非抽象类的子类的一个实例
4:不能用final 修饰符修饰
抽象类的应用场景:
	我们表述一类事物的时候,发现该事物确实存在着某种行为,但是这种行为目前不具体的,那么我们可以抽取这种行为声明,但是不去实现该行为,这时候这种行为我们称作为抽象的行为,我们就需要使用抽象类。
	抽象类的好处:强制要求子类必须实现指定的方法。
 
abstract class Animal{
	String name;
	String color;
	public Animal(String name,String color){
		this.name = name;
		this.color = color;
	}
	//非抽象方法
	public void eat(){
		System.out.println(name+"吃粮食");
	}
	public abstract void run();
}
	class Dog extends Animal{
		public Dog(String name,String color){
			super(name,color);
		}
		public void run(){
			System.out.println(name+"四条腿跑的快")
		}
	}

	class Fish extends Animal{
		public Fish(String name,String color){
			super(name,color);
		}
		public void run(){
			System.out.println(name+"摇摇尾巴");
		}
	}
	
	class Demo3{
	public static void main()
	{
		Dog d = new Dog("牧羊犬","棕色");
		d.run();
		Fish f = new Fish("小金鱼","红色")
		f.run();

		Animal a = new Animal();
	}
}

 

                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值