java详解-abstract

抽象类写法:

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
抽象类的实例方法


版权声明:本文为qq_51771271原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。