java基础—面向对象(二)

java基础—面向对象(二)

抽象类和接口

一、抽象类

抽象类的需要用abstract关键字修饰,抽象类中可以有抽象方法,
也可以有具体实现功能的方法。如果子类继承一个抽象类就必须
实现该抽象类的所有的抽象方法,否则也要声明为抽象类。
抽象类:
1.关键字abstract
2.半成品,没有完成的类
抽象方法:
1.有抽象方法,只有方法的定义,没有方法体,连大括号都没有;
该抽象方法也要用abstract关键字修饰
2.也有具体实现功能的方法
作用:
1.作为通用方法,在父类中定义
2.要求子类必须完成这些抽象方法

实例代码:
	public abstract class Person{
		String name;
		int age;
		public abstract void test();//抽象方法
	}
	
抽象类不可以创建对象,但是抽象类是可以有构造方法的。这句话怎么理解;
请看如下代码:

	//抽象类
	public abstract class Person{
		String name;
		int age;
		//这里是抽象类的构造方法
		public Person(){
			System.out.println("抽象类构造方法");
		}
	}
	
	//抽象类的子类
	public class Student extends Person{
		//子类构造方法
		public Student(){
			System.out.println("子类构造方法!");
		}
		public static void main(String[] args){
			//创建子类对象
			Student stu = new Student();
			
		}
	}
	
	结果如下图:

在这里插入图片描述
二、接口
接口是结构设计工具,解耦合,隔离实现。定义接口的关键字是interface,接口中
只能定义常量和抽象方法,接口没有构造方法。子类可以实现多个接口,
若实现多个接口,接口之间用逗号隔开。如果子类要实现某个接口就必须
实现该接口中所方法,否则要声明为抽象类。实现接口的关键字implements。
接口:
1.定义接口关键字:interface
2.实现接口关键字:inplements
抽象方法:
1.接口中的方法都是抽象方法
2.可以省略public abstract修饰,默认就是public abstract
常量:
1.接口中只能定义常量
2.可以省略 public static final,这三个关键字是默认存在的

代码如下:

	//接口
	public interface Person {
		//常量默认省略了public static final
		String NAME="张三";
		int AGE=20;
		//抽象方法,默认省略了public abstract
		void test();
	}
	//实现Person接口的子类
	public class Student implements Person{
		String name;
		int age;
		@Override
		public void test() {
			System.out.println("接口子类----测试");
		}
		public static void main(String[] args) {
			Student stu = new Student();
			stu.test();
			//使用Person接口中的NAME常量
			stu.name = Person.NAME;
			//使用Person接口中的AGE常量
			stu.age = Person.AGE;
			System.out.println("学生姓名:"+stu.name+"\n学生年龄:"+stu.age);
		}
	}
这里也上图一张:

在这里插入图片描述
是结构设计工具,解耦合,隔离实现

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值