Java学习(8) | 面向对象-什么是继承?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_42587283/article/details/89225434

目录

一、什么是继承

二、为什么需要继承

三、继承的特性

四、如何实现继承


一、什么是继承

继承对应java这门面向对象来说语言是一个重要的概念,因为它允许创建分等级层次的类。

继承就是子类继承父类【基类】的特征【属性】和行为【方法】,使得子类具有父类相同的行为与特征。

二、为什么需要继承

从程序开发角度来说便于系统架构的设计,并且方便维护与开发,减少了代码的复用。

三、继承的特性

  • java继承模式支持单继承与多重继承,例如

    •     class b继承class a

    •     class c继承class b并且class b继承class a 

  • java不支持多重继承,例如

    •     class c及继承class b也继承class a

  • 子类拥有父类的非private属性与方法

  • 子类可以拥有自己的方法,及对父类的扩展

  • 子类可以用自己的方法实现父类的方法,通过super关键字

  • 缺点是提高了耦合性,会使代码之间联系紧密,代码独立性查

四、如何实现继承

需要继承某个类需要使用extends关键字,下述代码为HapplyPeople这个类继承people这个类,并且使用父类的属性与方法。

这里有一点需要说明,静态方法不能直接调用静态方法或者静态变量

class   people{

        public static final String name = "name";
        public static void printHallow(){
            System.out.print("hallow");
        }

}





class  HapplyPeople extends people{

    public static void main(String[] args) {//子类可以使用父类的属性与方法
        System.out.print(people.name);
        HapplyPeople hp = new HapplyPeople();
        hp.say();
    }

    public void say(){
        super.printHallow();
    }

}

----------输出结果

namehallow

super与this关键字

通过运行结果可以看出,子类与父类同时拥有一个方法会优先执行子类的方法。

public class   people  {

        public static  String name ;
        public static  String age;

    public static String getAge() {
        return age;
    }

    public static void setAge(String age) {
        people.age = age;
    }

    public static String getName() {
        return name;
    }

    public static void setName(String name) {
        people.name = name;
    }

    public  void printHallow(){
            System.out.println(age+name+"父类hallow");
        }

}


class  HapplyPeople   extends people{
    public  void printHallow(){
        super.setName("快乐的人");
        super.setAge("11岁");
        super.printHallow();
    }

    public void doSomething(){
        super.printHallow();
        this.printHallow();
        printHallow();
    }


    public static void main(String[] args) {

        HapplyPeople HapplyPeople = new HapplyPeople();
        HapplyPeople.doSomething();
    }

}

//------------输出结果

//nullnull父类hallow

//11岁快乐的人父类hallow

//11岁快乐的人父类hallow

猜你喜欢

转载自blog.csdn.net/weixin_42587283/article/details/89225434