4-15具体类,抽象类,接口的关系

抽象类

//抽象类概述:(具体类继承抽象类)
//抽象类一般是多种事物的总称,例如老师,学生,工人等他们都人;我们就可以将人定义位一个抽象类,让老师,学生,工人等继承人这个类
//关键字abstract:class 类名前加上abstract就可以将此类定义为抽象类;
//特点:抽象类本身不能实例化;
//	  抽象类中不一定含有抽象方法;但有抽象方法的类一定是抽象类
//	  抽象类的子类如果是抽象类,是没有意义的,
//	  抽象类的子类一般都是具体类,必须实现抽象类的抽象方法,进行方法重写.
abstract class Person{
	public abstract void work();
}
class Student extends Person{
	@Override
	public void work() {
		System.out.println("学生的工作是学习");
	}
}
class Teacher extends Person{

	@Override
	public void work() {
		System.out.println("老师的工作是教书");
	}
}
public class Text1 {
	public static void main(String[] args) {
		Student s = new Student();
		s.work();
		Teacher t = new Teacher();
		t.work();
	}
}
//抽象类概述:(具体类继承抽象类)
//抽象类一般是多种事物的总称,例如老师,学生,工人等他们都人;我们就可以将人定义位一个抽象类,让老师,学生,工人等继承人这个类
//关键字abstract:class 类名前加上abstract就可以将此类定义为抽象类;
//特点:抽象类本身不能实例化;
//	  抽象类中不一定含有抽象方法;但有抽象方法的类一定是抽象类
//	  抽象类的子类如果是抽象类,是没有意义的,
//	  抽象类的子类一般都是具体类,必须实现抽象类的抽象方法,进行方法重写.
abstract class Person{
	public abstract void work();
}
class Student extends Person{
	@Override
	public void work() {
		System.out.println("学生的工作是学习");
	}
}
class Teacher extends Person{

	@Override
	public void work() {
		System.out.println("老师的工作是教书");
	}
}
public class Text1 {
	public static void main(String[] args) {
		Student s = new Student();
		s.work();
		Teacher t = new Teacher();
		t.work();
	}
}

接口

//接口概述:接口是主要体现的是事物的扩展性功能,主要是只后天学习而来的本领等.如学生在后天学会了开车;
//格式如下:interface 接口名{
//				抽象方法;
//		  }
//接口的特点:接口不能实例化,它的功能主要通过具体类去实现,它与类之间的关系式通过关键字implements相接,是实现关系
//		      接口和接口之间是继承关系,接口支持多继承
//接口成员特点:成员变量只能是常量;默认被public static final修饰
//			没有构造方法
//			只能是抽象方法,默认被public abstract修饰
interface Drive {
	public abstract void drive();
}
interface Smoking extends Drive{//接口继承接口
	public abstract void smoking();
}
class Driver implements Drive,Smoking{//具体类实现接口

	@Override
	public void drive() {
		System.out.println("司机会开车");
	}

	@Override
	public void smoking() {
		System.out.println("司机抽烟");
	}
	
}
public class Text3 {
	public static void main(String[] args) {
		Driver d = new Driver();
		d.drive();
		d.smoking();
	}
}

抽象类,接口的区别

 抽象类接口
成员变量可以是变量,也可以是常量只能是常量,默认被public staticfinal修饰
构造方法无参构造和有参构造没有构造方法
成员方法抽象方法和非抽象方法抽象方法,默认被public abstract修饰

类,接口,抽象类之间的关系

/**
 * 接口,具体类,抽象类之间的关系:
 * 类与类之间是继承关系,只能是单继承,但是可以支持多层继承(抽象类与抽象类之间的继承关系是没有意义的,两者都不能创建实体对象)
 * 类与抽象类之间的关系是继承关系,抽象类不能创建对象
 * 类与接口之间是实现关系,接口的抽象功能通过类来实现,可以支持多接口
 * 接口与接口之间是继承关系
 * */


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值