您的位置:首页 > 职场人生

黑马程序员-面向对象-继承

2013-02-09 11:46 260 查看


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

继承

继承的概述

1.多个类中存在相同的属性和行为时,将这些内容抽取到单独的一个类中,那么多个类无需再定义这些属性和行为,只要继承单独的那个类即可。

2.多个类可以成为子类,单独这个类称为父类或者超类。

3.子类可以直接访问父类中的非私有的属性和行为。

4.通过extends关键字让类于类之间产生继承关系,

Java代码







如: class SubDemo extends Demo{} class C { void demo1(){} } class A extends C { //void demo1(){} void demo2(){} } class B extends C { //void demo1(){} void demo3(){} }

如:
class SubDemo extends Demo{}

class C
{
void demo1(){}
}
class A extends C
{
//void demo1(){}
void demo2(){}
}

class B extends C
{
//void demo1(){}
void demo3(){}
}

优点:继承的出现提高了代码的复用性。

继承的出现让类于类之间产生了关系,提供了多态的前提。

继承的特点:

1.java只支持单继承,不支持多继承。

因为多继承容易带来安全隐患:当多个父类中定义了相同功能,

当功能内容不同时,子类对象不确定要运行哪一个。

但是java保留这种机制。并用另一种体现形式来完成表示。多实现。

一个类只能有一个父类,不可以有多个父类。

Java代码







class SubDemo extends Demo{}

class SubDemo extends Demo{}

2.java支持多层继承(继承体系)

Java代码







class A{}
class B extends A{}

class C extends B{}

class A{}
class B extends A{}
class C extends B{}

定义继承需要注意:

1.不要仅为了获取其他类中的某个功能而去继承

2.类于类之间要有所属(“is a”)关系,xx1是xx2的一种。

如何使用一个继承体系中的功能呢?

想要使用体系,先查阅体系父类的描述,因为父类中定义的是该体系中共性功能。

通过了解共性功能,就可以知道该体系的基本功能。

那么这个体系已经可以基本使用了。

那么在具体调用时,要创建最子类的对象,为什么呢?

一是因为有可能父类不能创建对象,

二是创建子类对象可以使用更多的功能,包括基本的也包括特有的。

简单一句话:查阅父类功能,创建子类对象使用功能。

关系:

聚集- |has a

|聚合关系不是很紧密,如球员。

|组合事物关系连接紧密,如手和身体

子父类出现有类中成员的特点:

Java代码







class Fu
{
private int num =
4;
public void setNum(int num)

{
this.num =num;
}
public int getNum()

{
return this.num;
}
}

class Zi extends Fu

{
//int num = 5;
void show()
{
System.out.println(num);
}
}

class ExtendsDemo2
{
public static
void main(String[] args)
{
Zi z = new Zi();
z.show();
//System.out.println(z.num+"...."+z.num);
}
}

class Fu
{
private int num = 4;
public void setNum(int num)
{
this.num =num;
}
public int getNum()
{
return this.num;
}
}

class Zi extends Fu
{
//int num = 5;
void show()
{
System.out.println(num);
}
}

class  ExtendsDemo2
{
public static void main(String[] args)
{
Zi z = new Zi();
z.show();
//System.out.println(z.num+"...."+z.num);
}
}

类中成员:

1,变量。

2,函数。

3,构造函数。

1,变量

如果子类中出现非私有的同名成员变量时,

子类要访问本类中的变量,用this

子类要访问父类中的同名变量,用super。

super的使用和this的使用几乎一致。

this代表的是本类对象的引用。

super代表的是父类对象的引用。

2,子父类中的函数。

Java代码







class Fu
{
void show()
{
System.out.println("fu show");
}
void speak()
{
System.out.println("vb");
}
}

class Zi extends Fu

{
void speak()
{
System.out.println("java");
}
void show()
{
System.out.println("zi show");
}
}

class ExtendsDemo3
{
public static
void main(String[] args)
{
Zi z = new Zi();
z.speak();

}
}

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

}

class NewTel extends Tel

{
void show()
{
//System.out.println("number");
super.show();
System.out.println("name");
System.out.println("pic");
}
}

class Fu
{
void show()
{
System.out.println("fu show");
}
void speak()
{
System.out.println("vb");
}
}

class Zi extends Fu
{
void speak()
{
System.out.println("java");
}
void show()
{
System.out.println("zi show");
}
}

class ExtendsDemo3
{
public static void main(String[] args)
{
Zi z = new Zi();
z.speak();

}
}

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

}

class NewTel extends Tel
{
void show()
{
//System.out.println("number");
super.show();
System.out.println("name");
System.out.println("pic");
}
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: