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

黑马程序员 继承

2015-08-14 17:43 148 查看
——- android培训java培训、期待与您交流! ———-

1,继承概述

把多个类中相同的内容或者功能给提取出来定义到一个类中,让继承的它的类都有这些内容或者功能。

体现

class OldPhone
{
public void call()
{
System.out.println("打电话");
}
}

class NewPhone extends OldPhone
{
public void send()
{
System.out.println("发信息");
}
}

class PhoneDemo
{
public static void main(String[] args)
{
NewPhone p = new NewPhone();
p.call();
p.send();
}
}


2,好处:

(1)提高代码的复用性;

(2)让类与类之间产生关系,有了这个关系,才有了多态的特性

3,注意:

(1)不要为了获取其他类的功能,简化代码而继承;必须是类与类之间有所属关系才可以继承。

(2)Java只支持单继承,不支持多继承。因为多继承容易带来安全隐患,当多个父类中定义了相同函数,但函数内容不同时,子类对象不确定要进行哪一个。但是java保留这种机制,并用另一种体现形式来完成表示,多实现。

(3)子类只能继承父类非私有的成员变量和成员方法,只能通过get()和set()方法或者用父类的带参构造访问

(4)当子类继承父类,沿袭了父类的功能,到子类中,但是子类虽具备该功能,但是功能的内容却和父类不一致,这时,没有必要定义新功能,而是使用覆盖特殊,保留父类的功能定义,并重写功能内容:

(a)父类中的私有方法不可以被重写

(b)子类方法访问权限一定要大于或等于父亲的方法权限

(c)静态的方法只能被静态方法重写

体现

//子类覆盖父类示例
class Fu2
{
void show()
{
System.out.println("show1");
}
}
class Zi2 extends Fu2
{   //子类覆盖父类内容并拓展自身内容
void show()
{
System.out.println("show2");
System.out.println("show3");
}
}
class ExtendsDemo2
{
public static void main(String[] args)
{
Zi2 z=new Zi2();
z.show();
}
}


4,this与super

This:

代表本类对象的引用

Super:

代表父类的内存空间的标识(可以理解为父类的对象引用)

当子父类出现同名时,使用super

注意:

(a)子类的所有的构造函数,默认都会访问父类中空参数的构造函数,因为子类中每一个构造函数的第一行都有一句隐式语句super()

(b)当父类中没有空参数的构造函数时,子类必须手动通过super语句形式来指定要访问父类中的构造函数。当然,子类的构造函数第一行也可以手动指定this语句访问本类中的构造函数

体现

//子父类中的构造函数示例
class FuStudent
{
private String name;
FuStudent()
{
System.out.println("学习");
}
FuStudent(String name)
{
this.name=name;
System.out.println("name="+this.name);
}
}
class ZiStudent extends FuStudent
{
ZiStudent()
{   //super();
System.out.println("运动");
}
ZiStudent(String name)
{
super(name);
}
}
class ExtendsDemo3
{
public static void main(String[] args)
{
ZiStudent z=new ZiStudent();
ZiStudent z2=new ZiStudent("李四");
}
}


5,final关键字

(a)是最终的意思,它可以修饰类,修饰成员方法,成员变量

(b)它修饰的成员方法,是不可以被子类重写的

(c)它修饰的类不能被继承

(d)它修饰的成员变量,其实是一个常量,规范全大写,单词间由”_”连接

(e)内部类只能访问final修饰的局部变量

——- android培训java培训、期待与您交流! ———-
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: