【Java基础-面向对象中(12)】

【Java基础-面向对象中(12)】,第1张

Java基础-面向对象中(1/2)
  • 继承性

继承性

面向对象的特征之二:继承性
一、继承性的好处:
①减少了代码的冗余
②便于功能的扩展
③为之后的多态性的使用,提供了前提

二、继承性的格式:class A extends B{ }
A:子类、派生类、subclass
B:父类、超类、基类、superclass
2.1体现:一旦子类A继承父类B以后,子类A中就获取了父类B中声明的所有的属性、方法。

                    ☆注意:父类中声明为private的属性和方法,子类继承父类以后,仍然认为获取了父类中的私有结构。
                    只是因为封装性的影响,使得子类不能直接调用父类的结构而已。

2.2子类继承父类后,还可以声明自己特有的属性或方法:实现功能的拓展。
子类和父类的关系,不同于子集和集合的关系。

三、Java中关于继承性的规定:
1、一个类可以被多个子类继承。
2、Java中类的单继承性:一个类只能有一个父类。
3、子父类是相对的概率。
4、子类直接继承的父类,称为:直接父类。间接继承的父类称为:间接父类。
5、子类继承父类后,就获取了直接父类和所有间接父类中声明的属性和方法。

四、1:如果我们没有显示的声明一个类的父类,则此类继承于java.lang.Object类。
2:所有的java类(除java.lang.Object类之外)都直接或间接继承于java.lang.Object类。
3:意味着,所有java类都具有java.lang.Object类中声明的功能。

  		pperson pp1 = new pperson();
      //  pp1.age = 1; //声明为private后不能直接调用
        pp1.eat();

        System.out.println("****************************");

        Student s1 = new Student();
       // s1.sleep(); //父类中把sleep方法声明为了private,不能直接调用了。
        s1.eat();//父类中eat方法调用了sleep方法,所以显示了“吃饭”和"睡觉"
        s1.name = "Tom";
        s1.showAge();//父类把age声明为private后,声明了showAge方法查看age。子类可以调用showAge方法,输出结果为0,说明堆中的对象有
                    //age这个属性,即私有的属性和方法子类也都继承了。
//------------------------  类  --------------------------------------
class pperson{
    String name;
    private int age;

     pperson(){

    }

    public pperson(String name,int age){
        this.age = age;
        this.name = name;
    }

    public void eat(){
        System.out.println("人吃饭");
        this.sleep();
    }

    private void sleep(){
        System.out.println("睡觉");
    }

    public void showAge(){
        System.out.println(age);
    }
}

class Student extends pperson{
//    String name;
//    int age;
    String maior;


    public Student(){

    }

    public Student(String name,int age,String maior){
       // this.age = age;
        this.maior = maior;
        this.name = name;
    }

//    public void eat(){
//        System.out.println("人吃饭");
//    }
//
//    public void sleep(){
//        System.out.println("睡觉");
//    }

    public void study(){
        System.out.println("学习");
    }


}            

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/870671.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存