继承 多态 接口

继承->多态

extends

public class Persion {
    public String name = "Roly_Fisn";
    //修饰符如果是  privute时子类不可以访问父类变量和方法
    public  void print(){
        System.out.println("我是父类");
    }
​
}
​
public class Student extends Persion {
//    public  String name = "于延闯";//1 当子类和父类变量重名时,当引用变量为子类时无法访问父类变量 要么引用变量为父类型要么用super关键字访问
    @Override
    public  void print(){
        System.out.println("我是子类");
    }
    public  void print2(){
      
    
        System.out.println("子类调用父类方法");
        super.print();
    }
}
​
方法重写
    方法名相同 
    参数类表相同
    修饰符不可以是  private      public > protected > default >private
    子类的修饰范围必须要比父类要>=
不可以重写的方法
    private私有  static属于类  final 不可以修改
​
super  
    super调用(父类)构造方法时,必须出现在子类 构造方法中的 第一行。
    无参时默认调用。当父类有参数的构造方法 必须要有参数  无参被干掉了
this
    代表当前对象
区别
    this只要在当前对象就可以使用(调用当前对象的方法)  
    super在存在继承关系时才可以使用(构造方法可以,但是不可以调用‘方法’)
    
​

方法多态

public class Car {
    public  void run(){
        System.out.println("car: run" );
    }
​
    public  void printCar(){
        System.out.println("car-----" );
    }
}
​
public class Bus extends Car{
    public  void run(){
        System.out.println("bus: run" );
    }
    public  void printBus(){
        System.out.println("bus-----" );
    }
}
​
public class Scar extends Car{
    public  void run(){
        System.out.println("car: run" );
    }
}
​
    public static void test02(){
        Car bus = new Bus();
        Car scar = new Scar();
        bus.run();//调用被重写的方法
        scar.run();//调用被重写的方法
​
        bus.printCar();//调用car的方法  也调用不了   printBus()//也就是说子类转为父类会丢失方法
​
        ((Bus) bus).printBus();//强转可以调用  高转低
    }
​
//对象的实例类型是确定的 new bus()  他就是一个bus类型
//但是其引用类型就不确定了  可以是父类型(就是多态  有多种形态)
//对象可以执行哪些方法只有 引用类型决定(父类) 实例类型不搭噶
****子类的引用对象可以调用父类和子类的所有方法(除了父类中被重写的)。
//多态的出现:重写方法
  
    
    instacenof关键字 可判断俩有无继承关系

抽象

abstract

​
public abstract class Person {
    public abstract void doSomething();
}
​
public class Student extends Person {
    @Override
    public void doSomething() {
        System.out.println("继承抽象类必须重写其中的抽象方法");
    }
}
​
#抽象类不可以new 
#抽象类中也可以写普通方法
#抽象方法必须在抽象类中

接口

接口里的都是常量 public static final

接口中没有方法 只有抽象

必须实现接口里的所有方法

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
面向对象编程(Object-Oriented Programming,简称OOP)是一种编程思想,它通过将数据和操作数据的方法组织在一起,以对象的形式来描述现实世界中的事物。面向对象编程的四个基本概念是封装、继承多态接口。 1. 封装(Encapsulation):封装是将数据和操作数据的方法封装在一起,形成一个独立的实体。这样可以隐藏内部的实现细节,只暴露对外提供的接口,提高代码的可维护性和重用性。通过封装,对象对外部只暴露必要的信息,同时可以对内部实现进行修改,而不会影响外部的使用。 2. 继承(Inheritance):继承是指一个类(子类)可以从另一个类(父类)继承属性和方法。子类可以复用父类的代码,并且可以在其基础上进行扩展或修改。继承可以实现代码的重用,同时也能够建立类之间的关系,形成类的层次结构。 3. 多态(Polymorphism):多态是指同一个方法可以根据不同的对象产生不同的行为。多态通过继承和方法重写来实现,可以提高代码的灵活性和可扩展性。通过多态,可以在不改变方法的情况下,根据对象的实际类型来动态调用不同的方法实现。 4. 接口(Interface):接口定义了一组方法的规范,实现了接口的类必须实现接口中定义的方法。接口可以用来实现类之间的解耦和增加代码的可扩展性。通过接口,可以定义类之间的约定,使得不同的类可以进行交互和通信。 这些概念是面向对象编程的基础,它们可以帮助开发者组织和管理复杂的代码,提高代码的可读性、可维护性和可扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值