Java三大特性之继承

一、继承

1.1 什么是继承

Java中提供一个关键字extends,用这个关键字,我们可以让一个类和另一个类建立起父子关系。

1.2 为什么要使用继承

在多个类中可能有重复的代码,我们将重复的代码抽取导父类中,以减少 代码的冗余

1.3 如何使用继承

使用关键字extends
class Dog extends Pet{ //子类Dog 继承了父类 Pet
}
示例:

public class Pet {
    public String name;
    public int age;
    public void feed(){
        System.out.println("喂食中...");
    }
}

class Dog extends Pet{   //狗类继承宠物类
    public static void main(String[] args) {
    Dog dog = new Dog();
    dog.name="旺财";			//子类对象访问父类中的属性
    dog.feed();					//子类对象调用父类中的方法
    }
}

1.4哪些情况下不可被继承

1.private修饰的成员
2.子类与父类不在同包用了默认的访问权限
3.构造方法

二、访问修饰符访问范围

**private:**私有的,只能在本类中可以访问
**default:**本类和同包中可以访问
**protected:**本类,同包以及其子类可以访问
**public:**公共的,处处可访问
示例:

package ExE;    //在EXE包中
public class Pet {
    public String name;
    public int age;				//public修饰
    private int id;				//private修饰
    int card;					//default修饰(缺省)
    protected String address;	//protected修饰

    public void feed(){
        System.out.println("喂食中...");
    }
}

package ExE;    //在EXE包中
class Dog extends Pet{
    public static void main(String[] args) {
    Dog dog = new Dog();
    dog.name="旺财";		//访问成功,public处处可访问
    dog.id=121;				//访问失败,只有本类中可访问
    dog.card=11;			//访问成功,本类和同包中可以访问
    dog.address="旺旺屋";	//本类,同包以及其子类可以访问
    }
}

package EXE1;   //在包EXE1中
import ExE.Pet;
public class Cat extends Pet {
    public static void main(String[] args) {
        Cat cat= new Cat();
        cat.name="喵喵";      //public访问成功
        cat.id=121;          //private访问失败
        cat.card=11;         //default访问失败
        cat.address="喵喵屋";      //protected访问成功
    }
}

三、重写

3.1 什么是重写

1.出现在有子父类的情况下
2.方法名和参数列表都要相同
3.返回值类型相同或者是其子类
4.访问修饰符的权限不能严于父类
5.抛出的一场不能大于父类

3.2 为什么要重写

父类的方法不能满足子类的需求
示例:

public class Pet {
    public String name;
    public int age;				
    private int id;				
    int card;					
    protected String address;	

    public void feed(){
        System.out.println("喂食中...");
    }
}

class Dog extends Pet{
    Dog dog = new Dog();
   	public void feed(){
   		System.out.println("吃骨头...")   //重写了父类中的方法
   		}
    
}

四、抽象类

4.1 什么是抽象类

抽象方法必须是在抽象类中,但是抽象类中可以有抽象方法和普通方法
子类继承抽象的父类需要重写父类的所有方法,除非子类也是抽象类
抽象方法没有实体
抽象类不能创建对象

4.2 为什么要使用抽象类

声明一种规定,让子类必须要重写的内容
示例:

public abstract class Pet {    //抽象类


    public abstract void feed(); //抽象方法
    }
}

class Dog extends Pet{
    Dog dog = new Dog();
   	public void feed(){     //对抽象类中的方法进行重写
   		System.out.println("吃骨头...")   
   		}
    
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值