Java抽象类和抽象方法概述

  用关键字abstract修饰类,就是抽象类。用关键字abstract修饰就是抽象方法。

  对于抽象方法,只允许声明,没有方法体。而且不允许使用final和abstract同时修饰一个方法或者类,也不允许使用static修饰抽象方法,即抽象方法必须是实例方法。

  1.抽象类中可以有抽象方法,也可以没有抽象方法

  2.抽象方法不能被实例化,即不能被new创建对象

    不能使用new来创建抽象类的对象。如果一个非抽象类是一个抽象类的子类,那么它必须重写父类的抽象方法,给出方法体,这就是为什么不能用final和abstract同时修饰一个类或方法的原因。

  3.抽象类的对象作上转型对象

     尽管不能用new来创建抽象类的对象,但是抽象类可以成为其子类对象的上转型对象,那么就可以调用子类重写的方法。

    

package com.seven.j_hbm_extends;

public class Example {
   public static void main(String[] args) {
	  Dog dog = new Dog();//子类创建对象
	  System.out.println("排名是:"+ dog.paiming2());//子类调用自己的方法
	  dog.speak();//子类调用重写父类的抽象方法
      Animal animal=dog;//父类成为子类的上传型对象
      System.out.println("排名是:"+animal.paiming1());//父类调用自己的方法
      animal.speak();//父类调用自己的抽象方法
	   
   }
}
   abstract class Animal{
	   abstract void  speak();
	   int paiming1(){
		   return 1;
	   }
	   
   }
   class  Dog extends Animal{
	void speak() {
		System.out.println("我是高级动物");	
	}  
	int paiming2(){
		return 2;
	}
   }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值