您的位置:首页 > 移动开发 > Objective-C

object+多态+抽象类+接口

2020-02-02 04:18 627 查看

一.object

定义:object是java所有类的父类,Java中所有类都直接或间接的继承object,Java是单继承机制·,·一个类如果没有显示继承其他类时,就默认他继承object类

常用方法:

1.toString():输出一个对象时会默认调用当前对象的toSteing()方法,打印方法的返回值

2.equals():比较相等,如果相等返回true,否则就返回false

equals与==的区别:

equals:是比较引用数据类型-->地址

==:是比较基本数据类型-->数值

注意:object中的equals的方法比较的是对象的地址

但equals方法可以重写

二.多态

定义:一个事物的多种形态|多种表现形式

表想形式:父亲类型 变量名=new 子类型();

多态的前提条件:

1.继承关系

2.有方法的重写

3.父类变量指向子类对象

多态的特点:多态调用时,会调用子类的重写方法,如果没有重写方法会调用父类中的内容

多态调用的特点:

成员变量:编译运行看父类|左边|类型

成员方法:编译看父类|左边|类型 ,运行看子类|右边|对象(儿子以父亲的身份做父亲的事)

[code]public class Demo02 {
public static void main(String[] args) {
Fu fu=new Zi();//多态
System.out.println(fu.name);
fu.test();//多态调用,输出父类的内容
}
}
​
class Fu{
String name="zhangsan";
void test(){
System.out.println("Fu");
}
}
​
class Zi extends Fu{
String name="zhangsanfeng";
void test(){
System.out.println("Zi");
}
}
​

 

三.类型转换

向上转型(自动转向提升):父类类型>子类类型

父类类型 变量名=new 子类类型();

向下转型(强制类型转换):

子类类型(小范围类型) 变量名=(小范围类型|子类类型)父类变量名|大范围类型变量名

注意:

1.父类的引用只能调用父类中有的内容,对子类新增内容不可见

2.使用父类的引用多态形式调用时候,不能够调用子类新增的内容,想要调用,需要向下转型

ClassCastException:类型转换异常

instanceof:运行运算符

作用:向下转型容易出现类型转换异常,instanceof可以防止这种异常的出现

定义:可以判断前面的的变量是否是后面类型的对象如果是返回true,如果不是返回false

[code]public class Demo01 {
public static void main(String[] args) {
//向上转型-->多态
KongZiDie k=new KongZi();
k.teach();
//向下转型: 想要调用子类独有内容
if(k instanceof KongZi){
KongZi kk=(KongZi)k;
kk.play();
}else if(k instanceof Brother){
Brother kk=(Brother)k;
kk.play();
}

}
}
class KongZiDie{
void teach(){
System.out.println("做生意....");
}
}
class KongZi extends KongZiDie{
void teach(){
System.out.println("讲论语....");
}
void play(){
System.out.println("玩王者..");
}
}
class Brother extends KongZiDie{
void play(){
System.out.println("玩吃鸡..");
}
}
​
​

 

四.抽象类

定义:被abstract修饰的类就是抽象类,被abstract修饰的方法就是抽象方法

注意:

1.没有方法体,没有{}

2.抽象方法必须存在抽象类中

3.抽象类中可以存在抽象方法,可以存在具体方法(有方法体的方法,但很少)

4.抽象类不能实体化(不能创建对象)

5.抽象类中的方法不需重写

抽象类如何使用:

具体子类:重写所有父类中的抽象方法+按需新增

抽象子类:按需重写父类中的抽象方法+按需新增

五.接口

含义:被interface定义的就是接口(一个特殊的抽象类)

作用:功能的集合(抽象方法的集合)

优点:

1.接口可以多实现,而类只能单继承(只要满足接口的条件就能使用里面的内容)

2. 要按照规范定义

解耦:降低耦合度,提高代码的复用性

在jbk1.7以前接口只存在:

1.公共的静态常量 public static final(默认),但修饰符可以省略

2.公共的抽象方法:public abstract(默认),但可以省略

特点:

1.接口不能实例化(因为接口中有抽象方法)

2.类去实现接口,要使用implements关键字

3.一个类可以有多个接口,但只能继承一个父类

4.一个类既可以实现多个接口也可以继承父类,但要先继承后实现

5.接口和类之间只能类实现接口

6.接口和接口之间,不能实现只能继承,接口可以继承多个接口,而且拥有每个接口中的功能

接口的使用:

1.具体的实现类使用:重写所有的抽象方法+按需新增

2.抽象的实现类:按需重写+按需新增

父类和父接口的区别:

父类:子类继承父类可以直接调用父类的内容

父接口:实现类,只要实现这个接口就能使用里面的功能

  • 点赞
  • 收藏
  • 分享
  • 文章举报
虫儿飞vv 发布了9 篇原创文章 · 获赞 0 · 访问量 49 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: