记录:Java基础学习之抽象类Abstract

抽象类的概念:简单的说就是,用abstract修饰的类就是抽象类。

抽象类的特点

1、 抽象类可以有构造方法、成员变量、成员方法、抽象方法,但是不能被实例化

public class AbstractClass {
	
	public static void main(String[] args) {
        // 在IDE上会直接报红
        // 尝试编译的时候会有错误:People is abstract; cannot be instantiated
		People people = new People("张三", 22);
	}
}

abstract class People {
	private String name;
	private Integer age;
	
	public People(String name, Integer age) {
		this.setName(name);
		this.setAge(age);
		System.out.println("This is Parent Class");
	}

	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 info();
}

2、抽象类必须被继承后,才能被使用。

public class AbstractClass {
	
	public static void main(String[] args) {
		People stu = new Student("张三", 22, "学生");
		stu.info();
	}
}


class Student extends People {
	private String job;
	
	public Student(String name, Integer age, String job) {
		super(name, age);
		this.setJob(job);
		System.out.println("This is Child Class");
	}

	public String getJob() {
		return job;
	}

	public void setJob(String job) {
		this.job = job;
	}
	
	@Override
	public void info() {
		System.out.println("姓名:" + this.getName() + "  年龄:" + this.getAge() + "  职业:" + this.job);
	}
}
This is Parent Class
This is Child Class
姓名:张三  年龄:22  职业:学生

3、子类如果没有实现父类的全部抽象方法,那么子类必定也是抽象类

4、抽象类的成员可以是private、默认、protected、public的,但是抽象方法只允许使用public、protected修饰,或者不用修饰符,其他任何修饰符都会报错。

abstract class Country {
	public String name = "";
	
	private static String landArea = "";
	
	protected final int status = 0;
	
    // 报错:The abstract method speak in type Country can only set a visibility modifier, one of public or protected
	private abstract void speak();
	
}

在实际工作中,我见得多的还是,使用抽象类作为工具类来使用,至于为什么,听说是因为抽象类不能被实例化,到底是不是这个原因,我也不是很清楚,因为写这个人已经不在了

这只是我的个人学习之见,有不足请大家拍砖,不要客气

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值