面向对象三大特征之继承

Posted ssxblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象三大特征之继承相关的知识,希望对你有一定的参考价值。

一、继承

使用要点:

1.父类也称作超类、基类、派生类等。

2.Java中只有单继承,没有像C++那样的多继承。多继承会引起混乱,使得继承链过于复杂,系统难于维护。(类只有单继承,接口有多继承)

3.Java中类没有多继承,接口有多继承。

4.子类继承父类,可以得到父类的全部属性和方法(除了父类的构造方法),但不见得可以直接访问(比如,父类私有的属性和方法)。

5.如果定义一个类时,没有调用extends,则它的父类是:java.lang.Object。

package cn.s;

public class TestExtends 
    public static void main(String[]args) 
        Student stu=new Student();
        stu.name="sun";
        stu.old=18;
        stu.rest();
        Student stu2=new Student("@sun",18,"play");
        System.out.println("我的名字是:"+stu2.name);
        System.out.println(stu2 instanceof Student);   //用于判断该对象是否属于该类。
        System.out.println(stu2 instanceof Person);
        System.out.println(stu2 instanceof Object);
    


class Person

    String name;
    int old;
    public void rest() 
        System.out.println("休息一会!");
    

class Student extends Person
    String major;
    
    public void study() 
        System.out.println("学习两小时");
    
    public Student(String name,int old,String major) //构造方法
        this.name=name;
        this.old=old;
        this.major=major;
    
    public Student() 
        
    
    

 

方法的重写  override

方法的重写需要符合下面的三个要点:

1.“==” :方法名、形参列表相同。

2.“<=” :返回值类型和声明异常类型,子类小于等于父类。

3.“>=” :访问权限,子类大于等于父类。

package cn.s;

public class TestOverride 
    public static void main(String[]args) 
        Horse h= new Horse();
        h.run();
    



class Vehicle
    public void run() 
        System.out.println("快点跑");
    
    public void stop() 
        System.out.println("停下来");
    
    public Person  who() 
        return new Person();                    //Person 类
        
    

    


class Horse extends Vehicle                    //继承父类
    public void run()                             //对父类方法的重写;
        System.out.println("已经够快了");
    
    public Student who()                         //student类
        return new Student();                   //返回值类型子类小于等于父类
    

 

Object 类是所有java 类的根基类,也就意味着所有的java 对象都拥有Object类的属性和方法。

package cn.s;

public class TestObject 
    public static void main(String args[]) 
        TestObject to =new TestObject();
        System.out.println(to.toString());
        
        ACP p=new ACP("sun",18);                    //对象
        System.out.println(p.toString());

    
    
    public String toString() 
        return "测试object";
    

class ACP
    String name;
    int age;
    public String toString()                         //在ACP中重写toString方法
        return "姓名:"+name+",年龄:"+age;
    
    
    public ACP(String name,int age) 
        this.name=name;
        this.age=age;
    
    

 

以上是关于面向对象三大特征之继承的主要内容,如果未能解决你的问题,请参考以下文章

python 面向对象的三大特征之 继承

JS面向对象三大特征:封装、继承、多态

面向对象三大特征之多态

面向对象三大特征之 继承

面向对象三大特征之继承

面向对象三大特征之继承