面向对象 抽象具体用法 接口

面向对象
面向对象:
抽象 封装 继承 多态
1 抽象:
将现实中的事物抽取出事物的属性和方法,封装成对象,通过对象的实例化和调用完成需求。
例:
Studet stu = new Student();
2 封装:
隐藏类的内部细节,提供外部访问的接口。
将多次重复运行的代码,封装到方法中,减少代码的冗余,提高代码的重用性。
例:
private int a = 10;
public int ageA(){};
public void setA(int a){this.a = a};
3 继承:
子类继承父类中的公有的属性和方法 关键字是 extends。
充分体现了java对象重用的特性,继承属性,重写方法,提高了代码的重用性。
例:
class a extends b
4 多态:
一种类型,多种形态。父类对象在编译器是父类形态,运行期是子类形态。提高了java系统的可插拔性。
例:
Pet pet;//父类类型
pet = new Penguin(“qq”,2,85,50,“雌”);
pet = new Dog(“大黄”,3,75,85,“黄色”);

抽象类
什么是抽象类?
abstract 修饰的类叫做抽象类
什么是抽象方法?
使用abstract修饰的方法叫做抽象方法 抽象方法不能具体实现,子类必须重写。
抽象的特征:
1 抽象类不能实例化
2 抽象类中有抽象方法 子类必须重写
3 抽象类中可以有非抽象方法,不要求子类强制实现。
4 如果一个类中有抽象方法 这个类一定是抽象类
5 如果一个类是抽象类 这个类不一定有抽象方法
6 抽象类就是为了防止父类被实例化 强制子类重写父类的方法
7 小知识点 在抽象类中 抽象方法不可以使用static关键字修饰 但是非抽象方法可以加static关键字修饰(不用 仅了解)。普通类里不能抽象(abstract)方法。
抽象类的例子:
public abstract class Pet (){}

接口
什么是接口?
接口不是类, interface修饰 是一种数据类型

初识可以认为接口很像抽象类和父类

一个类中 只能有一个父类 但是可以有很多接口
例如:
1:设立一个抽象类为主类的父类
public abstract class DemoAbstract(){}
2:建立两个接口
public interface DemoInterface1(){}
public interface DemoInterface2(){}
3:在主类中带入接口和父类
public class extends DemoAbstract imlements DemoInterface1,DemoInterface2

关键字有 abstract interface imlements.
接口中 可以有常量 使用static final修饰 默认被修饰
接口中 可以有方法 使用abstract 修饰 默认被修饰
接口中 没有构造方法
接口不能被实例化

一个类中 如果实现两个接口 接口使用逗号分离 必须实现两个接口中的所有方法
问:抽象类能实现接口吗? 可以。
问:接口能继承抽象类吗? 不可以。
问:抽象类能继承抽象类吗? 可以。
问:接口能继承接口吗? 可以。
接口可以继承接口: 子接口可以实现父接口里的方法。实现了子接口的类可以直接调用。
顶级提问?抽象类和接口有什么相同点和不同点?请根据: 属性: 接口中的属性默认被static final 修饰的常量。
抽象类中可以有变量。
接口常量只能被public default 修饰。
方法:
接口中的方法,只有默认被abstract修饰的抽象方法。
抽象类中可以有抽象方法也可以有非抽象方法。
构造方法 接口中没有构造方法。
抽象类有构造方法。
相同点: 抽象类和接口都不能实例化。
不同点: 接口只能被实现
抽象类只能被继承。
抽象类是类,接口不是类。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值