java详解-abstract

本文详细介绍了Java中的抽象类和抽象方法。抽象类不能被实例化,但可以有构造方法供子类使用。抽象方法是无实现的,必须在抽象类中声明并由子类覆写。抽象类的主要作用是实现多态性和代码的扩展性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

抽象类写法:

abstract class A{
    public void mothod1(){
        System.out.println("hello");
    }
    public abstract void mothod2();
    public abstract void method3();
}

抽象类可以有自己的方法,必须要有抽象方法。

抽象类:
1.抽象类不能被实例化,因为抽象类代表一个类型。只有它的继承类可以被实例化。
2.抽象类有自己的构造方法,它的继承类实例化时会被调用。
3.抽象类可以有实例方法(接口没有)。
4.抽象类不能用final修饰。

抽象方法:
1.必须用abstract修饰,并且没有方法体,无法直接调用。
2.抽象方法不能用private修饰,因为抽象方法必须被子类覆写。
3.抽象方法也能用static修饰,因为抽象方法没有主体,不能通过类名直接调用。

抽象类与抽象方法:
1.如果一个类中含有抽象方法,则这个类必须声明为抽象类。
2.抽象类中可以没有抽象方法,这样做目的是使其不能被实例化。
3.如果一个类继承自一个抽象类,则必须覆写其全部抽象方法,否则这个类为抽象类(这样做无意义,因为不能被实例化)。

抽象类的好处:
1、由于抽象类不能被实例化,最大的好处就是通过方法的覆盖来实现多态的属性。也就是运行期绑定。
2、抽象类将事物的共性的东西提取出来,由子类继承去实现,代码易扩展、易维护。

抽象类的构造器:

public abstract class Car {
	
	Car(){
		System.out.println("抽象方法无参构造函数");
	}
	Car(String a){
		System.out.println("抽象有参构造方法");
	}
	public void mothod1(){
		System.out.println(this.getClass());
		System.out.println("抽象类的实例方法");
	}
	
	public abstract void mothod2();
	
}
/**
 * 自行车
 */
class Bicycle extends Car{
	
	Bicycle(){
		System.out.println("子类无参构造函数");
	}
	
	@Override
	public void mothod2() {//需要覆写抽象方法mothod2
		
	}
}
/**另一个包的测试类**/
public class Test {

	public static void main(String[] args) {
		Bicycle b = new Bicycle();
		b.mothod1();
	}
}
结果:
抽象方法无参构造函数
子类无参构造函数
class com.shaolin.service.impl.Bicycle
抽象类的实例方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值