0
点赞
收藏
分享

微信扫一扫

Java的继承

SDKB英文 2022-04-20 阅读 89
java

继承

1,含义,

多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。多个类可以称为子类,单独这个类称为父类,子类可以直接访问父类中的非私有的属性和行为。

2,写法

通过 extends 关键字让类与类之间产生继承关系。


	class父类 
	{
	}
	class子类 extends父类 
	{
	}

3,作用

减少冗杂的代码,提高代码的复用性。
让类与类之间产生了关系,是多态的前提。在下一篇博客我会讲多态。

4,继承的特点

单继承

一个父类能有多个子类,但一个子类只能有一个父类,这叫做单继承。

关于继承内容

1.继承了成员属性
2.继承了成员方法(不包括被private修饰的)和静态方法(不包括被private修饰的)
ps,因为父类中private修饰的方法是父类独有的,不会被继承。
3.构造方法没有被继承。

继承中的关系

父类型引用指向子类型引用对象(为自动类型转换,向下转型)
Animal a=new Dog( );
package com.lfc.Java.Demo2;

public class Staff//父类
{
    private String name;
    private String type;
    private int age;
    public Staff() { }
    public void setName(String name)
    {
        this.name = name;
    }

    public String getName()
    {
        return this.name;
    }
}
class Manager extends Staff//第一个子类
{
    private int yearmoney;
    private String zhiwu;
}
class Clerk extends Staff第二个子类
{
    private int monthmoney;
    private String bumeng;
}

//Manager和Clerk都继承Staff,一个父亲两个儿子。

class Test1
{
    public static void main(String[] args)
    {
        Staff manager=new Manager();
        manager.setName("jingli");//调用了继承自Staff的setName()方法;
        System.out.println(manager.getName());调用了继承自Staff的getName()方法;

       	Staff clerk=new Clerk();
        clerk.setName("zhangsan");调用了继承自Staff的setName()方法;
        System.out.println(clerk.getName());//调用了继承自Staff的getName()方法;
    }
}


//private的属性子类无法直接访问,但可以通过方法父类提供的方法间接的访问。
//如上代码的name是父类的private属性子类,通过父类提供的getName()间接访问。

//父类的能力是有限的,子类拥有了父类的一些方法和属性之后,还可能满足不了需求。
//例如上面代码我们在Manager中还定义了yearmoney和zhiwu;
//在Clerk中还定义了monthmoney和bumeng,
//当然我们可以在Manager和Clerk中定义他们需要的方法,子类比父类更加强大。
举报

相关推荐

java中的继承

JAVA中的继承

Java中的继承

类的继承(java)

java 继承

Java 继承

java继承

0 条评论