JAVA迅猛式语法总结(十)

6.4 继承

继承的本质就是对类再次进行抽象,对类分类,从而实现个好的建模。继承是类和类之间的一种关系,除此之外,类之间还有依赖、组合、聚合等关系。

关键词是extands,java中的继承都是单继承,没有多继承。

继承关系的两个类,一个是子类,即派生类,一个是父类,子类继承父类。

子类和父类之间,具有“is a ”的关系,例如人和学生,那么两个类之间有“学生是人”的关系。

//父类
public class Person {
    public void say(){
        System.out.println("hahaha");
    }
}



public class Student extends Person{
    String name ;
    int age;


    public void study(){
        System.out.println(this.name+"在学习");
    }
}

子类可以继承父类所有public修饰的方法和属性。注意几点:

  1. java中所有的类都是object类的子类。

  2. 单继承既是一个子类对应的只能是一个父类,但一个父类能对于很多子类。

  3. super只能出现在子类中。

  4. super不能调用父类private修饰的方法和属性。

  5. 调用构造方法时,super不能和this同时调用构造方法。

  6. super调用构造方法时,会默认先调用父类的构造方法。此时,**this()**也可以使用

  7. super调用父类构造器时,必须在子类构造器的第一行

   //父类
   public class Person {
   
       protected String name = "desmond";
   
       public Person(){
           System.out.println("1");
       }
   
       public void say(){
           System.out.println("hahaha");
       }
   
       public void print(){
           System.out.println("Person");
       }
   }
   
   
   
   public class Teacher extends Person{
       private String name = "alex";
   
       public Teacher(){
           this("name");
           System.out.println(this.name);
       }
   
       public Teacher(String name) {
           this.name = name;
       }
   
       public void test(String name){
           System.out.println(name);
           System.out.println(this.name);
           System.out.println(super.name);
       }
   }

然后是方法的重写:

重写与重载是不同的,重写只是针对方法的重写,与属性无关。

public class Pet {//父类
    public  void test(){
        System.out.println("Pet");
    }
}


public class Dog extends Pet{//子类
    public void test(){
        System.out.println("dog");
    }
}

public class App {//app
    
    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.test();
        Pet pet = new Dog();
        pet.test();

    }
}

注意几点:

  1. 重写不能重写静态方法。静态方法跟随所属的类。
  2. 子类与父类中重名的方法必须都是非静态的。
  3. 只能由父类重写转换为子类,不能把子类重写转换成父类
  4. 重写方法名必须相同参数列表必须相同。
  5. 修饰符范围只能扩大不能缩小。public>protected>default>private
  6. 抛出异常的范围只能缩小不能扩大
  7. 重写就是重写父类的方法体

重写的意义就是父类的方法子类不一定需要或者满足,需要重写方法!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值