Java的抽象类和抽象方法

目录

1、抽象类

2、抽象方法:

 3、   抽象类和抽象方法的使用


1、抽象类

当父类的方法不能确定时,可以用abstract关键字来修饰方法,这个方法时抽象方法,用abstract来修饰该类就是抽象类。

public abstract class Animal {
	public abstract void shout();

}

抽象类的注意事项:使用abstract修饰的类为抽象类

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

 2)抽象类中可以有普通方法,也可以没有普通方法。

 3)抽象类不能实例化(不能通过new来创建对象)。

 4)abstract只能修饰类和方法,不能修饰属性和其它方法。

5)抽象方法不能使用private、final和static来修饰,因为这些关键字都和重写相违背的。

2、抽象方法:

使用abstract修饰的方法为抽象方法

 1)抽象方法没有方法体

public abstract void test1();

 2)抽象方法所在的类要定义为抽象类

 3)某个类继承了一个抽象类,那么该类需要重写抽象类中所有的抽象方法,如果不重写,这个类也需要定义为抽象类。 

重写抽象类的所有方法:

public class Son1 extends Father{

	@Override
	public void test1() {
		System.out.println("Son1类中重写的test1()方法");
		
	}

	@Override
	public void test2() {
		System.out.println("Son1类中重写的test2()方法");
		
	}

}

 3、   抽象类和抽象方法的使用

package cn.bdqn.demo02;
//定义Father的抽象类
public abstract class Father {

	private String name;

	private int age;

	public Father() {
		super();
	}

	public Father(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}
	
	public abstract void test1();//抽象方法
	
	public abstract void test2();//抽象方法

}

   

public class Son1 extends Father{
//继承Father抽象类进行重写
	@Override
	public void test1() {
		System.out.println("Son1类中重写的test1()方法");
		
	}

	@Override
	public void test2() {
		System.out.println("Son1类中重写的test2()方法");
		
	}

}

   

public class Test {

	public static void main(String[] args) {
		//抽象类不能实例化,需要进行多态向上转行
		//创建Father类对象
//		Father father1 = new Father();
		Father father2 = new Son1();
		//形式上是Father的引用调用Father类中的test1()方法,实际上调用的是Son1类中的test1()方法,因为father2指向的是Son1,所以father1调用的是Son1重写的test1()方法
		father2.test1();

	}

}

                                                                           

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值