接口抽象类

1.定义了一个接口,
接口中所有的方法都是抽象方法,默认就是抽象方法:public abstract
接口能不能实例化 -特殊的抽象类,-不能实例化
接口不能有在成员变量,只能存在静态常量:在常量前面加 final int num = 11;
接口中不存在构造方法,
接口中允许存在静态方法,可以直接通过接口名调用静态方法
在jdk1.7之前是不允许有普通方法的,1.8之后,可以存在普通的方法,需要使用default关键字来修饰
接口A 想拥有接口B 的功能,可以使用继承,同类型之间都是使用继承,接口中是允许出现多继承的
一个类想拥有接口中的方法时,类实现接口, 接口和类之间的关系-没有关系
public interface A{
public static final int B = 11; //公开静态常量
public abstract void m();//公开抽象方法
public default void n(){ //jdk1.7之前没有这个方法,jdk1.8之后接口里可以定义普通方法
}
public static void m2(){ //静态方法接口静态层面脱离实例层面,直接接口名.m2()方法
}
}

继承:类与类之间(关系 is a) 只能继承一个,类是单继承,
接口:接口(has a)代表一种能力,接口与接口之间可以继承多个,
类extends类implementsA,B
interface Paper{
public int size();//纸张的约定,标准可以看成一个模板
}

class A4Paper implements paper{//可以理解成生产纸张按照纸张的标准
public int size(){
}
}

class printer{//打印机需要纸张
Paper paper;
有参构造给paper赋值
paper.size();
}

2.Door d = new SafetyDoor();//向上转型
SafetyDoor s1 = (SafetyDoor)d;//向下转型

3.接口引用指向实现类对象
Paper p = new A4Paper();//接口引用指向实现类对象也可以看成是多态

对象
4.给类中的私有属性赋值
set(int age)
有参构造方法
如果存在继承可以super,拿到自己想要的信息

访问权限修饰符 -4个
public,公共的,公开的,没有任何限制
private,私有的,私有化,只能在当前类中访问
default 默认修饰符,包级别的权限
protected 也是包级别的权限,还有非同包子类的情况也可访问

5.静态变量只能是成员变量,不可以局部变量
static int a;
被static修饰内容,独立于对象,不依靠对象来调用
作用3个:1.修饰成员变量 2.修饰方法 3.静态代码块
被static修饰的内容,在内存中只有一份,被所有当前类的对象所共享

6.多态//前提存在继承关系,方法的重写
父类引用指向子类对象
一种数据类型的多种表现形态
使用多态优化代码
方法接受了父类的数据类型,传递的子类对象过来就是多态的体现(使用父类作为形参)
abstract - 抽象的,可以用来修饰方法,还可以修饰类
被abstract 修饰的方法 -抽象方法
特点:没有方法体

7.抽象类能不能实例化?就是创建对象?为什么? 不能 假设可以实例化,抽象类中可能会存在抽象方法,抽象方法是不完整的 ,对象来调 用抽象方法的话,没有 任何意义,规定:抽象类不能实例化
抽象类能不能没有抽象方法 可以
抽象类能不能继承普通类 可以 抽象类仅仅是不能实例化,和其他的都没有关系,不影响继承关系
普通类能不能继承抽象类 可以
抽象类和抽象方法的关系
1.抽象方法必须位于抽象类中
2.抽象类中可以不存在抽象方法
抽象类是否存在抽象的构造方法和静态方法
不存在
但是抽象类存在构造方法和静态方法

8.this - 当前对象,谁调用了这个方法,this就指向谁
只要在这个类的方法中,调用这个类的属性,前面就需要加this
this可以用来为属性赋值,调用方法,调用构造方法
this()必须在构造方法中
注意:this()必须要位于第一行 有this()无super()

9.== 和equals区别?
==比较2个值是不是相等
equals()-2个对象是不是同一个,

10.直接输出对象的话默认调用了toString()方法,重写toString方法
public String toString() {
return “Studnet [age=” + age + “, name=” + name + “, score=” + score
+ “, id=” + id + “]”;
}

11.instanceof 判断一个变量是不是一个类的实例

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值