面向对象(继承 抽象类 接口 多态)

继承

1.概念:父类继承子类已有的属性和方法,并能衍生出新的能力

2.格式

class 子类 extends 父类 {}

3.代码举例

public class Animal {
    String name.
    String gender;
    int age;
    public void eat(){
        System.out.println(name+"吃东西");
    }
    public void sleep(){
        System.out.println(name+"在睡觉");
    }
}
 

public class Dog extends Animal{
    void bark(){
        System.out.println(name+"旺旺~");
    }
    public static void main(String[] args) {
        Dog dog = new Dog();
        System.out.println(dog.name);
        System.out.println(dog.gender);
        System.out.println(dog.age);
        dog.eat();
        dog.sleep();
        dog.bark();
    }
}
 


public class Cat extends Animal{
    void mew(){
        System.out.println(name+"喵喵~");
    }
    public static void main(String[] args) {
       Cat cat = new Cat();
        System.out.println(cat.name);
        System.out.println(cat.gender);
        System.out.println(cat.age);
        cat.eat();
        cat.sleep();
        cat.mew();
    }
}
 

注意:成员变量的访问遵循就近原则,自己有就优先访问自己的

4.super 与 this 关键字

super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。

this关键字:指向自己的引用(当前类)。

5.final关键字

.修饰类:表示类不能继承

.修饰方法,表示方法不能被重写

.修饰变量或字段,表示常量(即不能修改)

抽象类

1.概念

拥有抽象方法的类就是抽象类,但抽象类不一定要有抽象方法,抽象类要使用abstract关键字声明。

2.抽象类使用注意事项:
一个类如果定义为抽象类,那么里面可以没有抽象方法
一个类中如果有抽象方法,那么这个类必定是一个抽象类
抽象类不能被实例化,可以实例化非抽象子类的对象
抽象类的所有非抽象子类必须重写抽象类中的抽象方法
抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的。

接口

1.概念

接口是一些方法特征的集合,一种特殊的类,里面全部是由全局常量和公共的抽象方法所组成

,接口是解决Java无法使用多继承的一种手段

 接口中的方法必须全部抽象方法

2.格式

public interface 接口名称{
        //抽象方法
        //默认方法
        //静态方法
        //私有方法
}

3.注意事项

(1)接口必须要有子类,但此时一个子类可以使用implements关键字实现多个接口;
(2)接口的子类(如果不是抽象类),那么必须要覆写接口中的全部抽象方法;
(3)接口的对象可以利用子类对象的向上转型进行实例化。

抽象方法
抽象方法:使用abstract关键字修饰,可以省略,没有方法体,该方法供子类实现使用。

代码如下:

public interface InterFacehame { 

          public abstract void method();
}

默认方法和静态方法
默认方法:使用default 修饰,不可省略,供子类调用或者子类重写

静志方法:使用static 修饰,供接口直接调用。

代码如下:

public interface InterFaceNamo {
public default void method(){
             // 执行语句

    }
public static vold method2(){
             // 执行语句

     }

}

私有方法和私有静态方法
私有方法:使用private修饰,供接口中的默认方法或者静态方法调用。

代码如下:

public interface InterFaceName{
     private void method(){
                // 执行语句

      }

}

多态

1.概念

指在父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或方法在父类及其各个子类中具有不同的含义。

多态存在的三个必要条件

1.发生在继承或者实现接口的情况下
2.在子类中对方法进行了重写
3.父类引用指向子类对象   父类类型   变量名=new  子类对象()

2.多态的好处

在开发中可以把父类(接口类型)类型定义为方法的形参,在实际调用的时候转入的实际参数就比较灵活,可以传入父类类型的对象,也可以传入任意一个子类类型的对象

3.代码

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值