黑马程序员之_java基础回顾之继承

来源:互联网 发布:win10网络唤醒 编辑:程序博客网 时间:2024/06/08 00:26

---------------------- android培训java培训、期待与您交流! ----------------------

继承:多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。通过extends 关键字让类与类之间产生继承关系。

class A
{
void show()
{
System.out.println("show()");
}

void show2()
{
System.out.println("show2()");
}
}
//A类中有show()和show2()方法。

class B
{
int num  = 30;
void show()
{
System.out.println("show()");
}

void show2()
{
System.out.println("show2()");
}
}
//B类中有也show()和show2()方法。

class C
{
void show()
{
System.out.println("show()");
}

void show2()
{
System.out.println("show2()");
}

void show3()
{
System.out.println("show3()");
}
}
//C类中也有show()和show2()方法。还有show3() 方法。这样的代码重复度很高。
如果能够想办法,让A和B或者C之间产生关系,有了关系后,我们B或者C能够减少代码的编写。就比较OK了。
那么,怎么做呢?java有没有提供这种思想呢?java提供了一个叫做继承的东西。就是专门解决这类问题的。

继承的关键字 extends
继承的格式:
class 类X extends 类Y
{
}

1:类X就具有类Y中所有非private的成员。

类X叫做:子类,派生类。
类Y叫做:超类,父类,基类。

2:继承的好处:
A:继承的出现提高了代码的复用性。
B:继承的出现让类与类之间产生了关系,提供了多态的前提。
  多态的前提。

class A
{
void show(){}
void show2(){}
}

class B extends A
{
int num = 30;
}

class C extends A
{
void show3(){}
}
//使用继承后,A,B,C三类的方法跟上面的一样,但是大大简化的代码,提高的代码的复用性。
3:继承的特点
A:Java只支持单继承,不支持多继承。

class A

{}

class B extends A
{}

class C extends A ,B//这样是不对的
{}

这句话不够准确:因为
**java虽然不支持类多继承,但是接口可以多继承。
**java不是不支持多继承,而是他对多继承进行了改良,优化。避免了安全问题的产生。

class A
{
void show(){}
}

class B
{
void show(){}
}

class C extends A,B
{
//假如可以,那么这里的show调用的又是谁的呢?
//show();
}

B:Java支持多层(重)继承(继承体系)
class A{}
class B extends A
{}
class C extends B
{}

4:定义继承需要注意:
A:不要仅为了获取其他类中某个功能而去继承
class A
{
void show(){}
void show2(){}
}

class B
{
void show(){}
void show3(){}
}

class B extends A
{
//这种方式不可取,因为它有可能同时具备了一些不需要的东西。
}

B:类与类之间要有所属( " is a " )关系,xx1是xx2的一种。


class B extends A 就可以说:B是A的一种。继承的关系:用于判断类与类之间是否是继承的。

---------------------- android培训java培训、期待与您交流! ----------------------