Java基础-----抽象类

Java基础-----抽象类,第1张

Java基础-----抽象类 抽象类 概念

很多具有相同特征和行为的对象可以抽象为一个类;
很多具有相同特征和行为的类可以抽象为一个抽象类;
抽象类用关键字abstract来声明。

抽象方法的格式
权限修饰符 abstract 返回值类型 方法名(参数列表);

抽象方法
如果一个类中含有抽象方法,那么这个类一定是抽象类;
抽象类中的方法由其子类来实现。

//此处简单写一个抽象类
abstract class Car{
	public abstract void start(); 
	 //抽象方法,只有方法的声明,没有方法的实现,具体实现由子类完成
}
抽象类的规则

1.抽象类可以没有抽象方法,有抽象方法的必定是抽象类

//显然,有抽象方法的类必定是抽象类;下面写一个没有抽象方法的抽象类
abstract class Car{
	public void start(){
		System.out.println("汽车启动了");
	}
}

2.非抽象类继承抽象类,必须实现其所有的抽象方法

abstract class Car{
	public abstract void start();
	public abstract void stop();
}

class TSL extends Car{
	public void start(){
		System.out.println("我的特斯拉启动了");
	}
	public void stop(){
		System.out.println("哎,怎么就熄火了")
	}
}

3.抽象类可以继承抽象类,并且可以不实现父类抽象方法

abstract class Car{
	public abstract void start();
	public abstract void stop();
}

abstract class BWM extends Car{}

4.抽象类可以有方法的实现和属性

public class Abstract2 {
    public static void main(String[] args) {
        TSL t = new TSL("特斯拉"); 
        t.start(); //输出结果:我的特斯拉启动了
        t.stop(); //输出结果:哎,怎么就熄火了
        t.eat(); //输出结果:汽车去加油站吃饭了
        System.out.println(t.name); //输出结果:null
        System.out.println(t.color); //输出结果:红色
    }

}
abstract class Car{
	//抽象方法中的属性
	String color = "红色";  
	//抽象方法中实现的普通方法
	public void eat(){
		System.out.println("汽车去加油站吃饭了");
	}
	public abstract void start();
	public abstract void stop();
}

class TSL extends Car{
	String name;
	//无参构造
	public TSL(){}  
	//含参构造
    public TSL(String name) {
        this.name = name;
    }
	public void start(){
		System.out.println("我的特斯拉启动了");
	}
	public void stop(){
		System.out.println("哎,怎么就熄火了")
	}
}

5.抽象类不可以被实例化;简而言之,就是抽象类不能创建对象
6.不能修饰抽象的修饰符:
private:被私有化后,子类无法进行重写,即在子类中无法实现父类的抽象方法,违背了抽象类存在的作用
static:静态资源优先于对象存在,存在加载顺序的问题
final:被final修饰的类不能用来被继承,从而不能去实现抽象类的抽象方法
7.抽象类可以有构造方法

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5661126.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存