抽象类和接口的简单介绍

抽象类

在面向对象中,所有的对象可以通过类来创建。反过来说,并不是所有的类都可以创建对象的。如果一个类中没有足够完整的信息来描述具体的对象的话,那么这个类叫抽象类。在Java中使用关键字abstract修饰类,这个类叫抽象类。

abstract关键字

abstract修饰的类叫抽象类

abstract修饰的方法叫抽象方法

总结:abstract 只能修饰类和方法

语法格式:



abstarct class 类名{ 普通的方法; public void eat () { } 抽象方法; public abstarct void sleep (); }

注意事项:

1.如果一个类中用abstract修饰的话,那么这个类叫抽象类

2.抽象类中可以有普通成员方法和抽象方法

3.抽象方法没有方法体,是不完整的方法

4.抽象类不能被实例化

5.写一个普通的类去继承抽象类

6.在子类中一定去实现(重写)抽象类中所有的抽象方法

7.非抽象方法可以重写也可以不重写

8.一个抽象类能不能去继承另外一个抽象类? 可以的!!!

9.抽象类可以继承非抽象类

案例



class Cell { public void add () { System.out.println("分裂"); } } abstract class Animal extends Cell{ public abstract void run(); } abstract class Monkey extends Animal{//抽象类 public void call () {//普通的成员方法 System.out.println("咿咿呀呀......."); } public abstract void eat(); public abstract void sleep(); } class People extends Monkey { @Override public void eat() { // TODO Auto-generated method stub System.out.println("吃肉!!!"); } @Override public void sleep() { // TODO Auto-generated method stub System.out.println("躺着睡。。。"); } @Override public void call() { System.out.println("嘻嘻哈哈说话"); } @Override public void run() { // TODO Auto-generated method stub System.out.println("人站立奔跑。。。"); } } public class Demo1 { public static void main(String[] args) { People people = new People(); people.add(); } }

接口

语法格式



interface 接口名字 { 成员变量 成员方法 }

实现接口使用关键字implements

接口的注意事项:

1.使用关键字 interface 声明出来一个接口

2.接口面可以有属性,但是是static 和final修饰的属性。被称为常量。几乎不用

3.接口下面全部抽象的方法,不带方法体的

4.jdk1.8以后是可以有默认(default)的方法的,这个默认方法带有方法体【重点!!!】

5.接口下面没有构造方法,不能被实例化

6.去使用一个普通的类去实现这个接口,使用关键字implements

7.一定要在实现类中去实现所有的抽象方法

8.一个普通的类可以实现多个接口,弥补了单继承的局限性

9.一个接口可以去继承另外一个接口

案例

电脑类去实现以下的三个接口。

电源接口

鼠标接口

网络接口

比如上面有三个接口,电脑是一个类,让电脑本身不具备插电源 连网线连鼠标的

只有在电脑类基础之上 去实现三个接口之后,那么电脑就会拥有充电 联网连鼠标这些功能的



//电源接口 interface Adapter { public void input();//充电 } //USB 接口 连接鼠标 interface USB { public void mouse(); } //网络接口 可以联网 interface Net { public void internet(); } class Computer implements Adapter, USB, Net{ @Override public void internet() { // TODO Auto-generated method stub System.out.println("联网"); } @Override public void mouse() { // TODO Auto-generated method stub System.out.println("连接鼠标"); } @Override public void input() { // TODO Auto-generated method stub System.out.println("充电!!!"); } } public class Demo3 { public static void main(String[] args) { Computer computer = new Computer(); computer.mouse(); computer.input(); computer.internet(); } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值