5分钟了解java 继承与多态

1.1、 :  相当于文件夹 ,用来管理Java的源代码文件 。

1.1.1自定义包 语法如下:

    注意:声明一个变量的语法必须写在第一行。

1.1.2包的导入

如果要使用Java中存在的包,可以在程序中使用import语句导入包。格式如下:

如果要导入一个包中的多个类,可以用“*”表示包中的所有类,例如 :

1.2、  继承

继承是面向对象程序设计的一个重要特征,它是通过继承原有类派生出的子类,进而构造出更为复杂的子类。  格式如下:

*  在使用继承的特性时,需要注意的是子类可以继承父类中访问权限为Public, protected,default的成员变量和方法 。(Java中的继承为单继承,其一个子类只能有一个直接的父类 )

1.3、重载和重写

1.3.1  重载:在同一个类中,定义的方法名相同,参数不同 。

       *(返回值类型不能用于区分方法的重载 ,构造方法也可以实现方法的重载 )

1.3.2  何时用重载:功能相同,参数不同 。

示例:

1.4、重写

1.4.1  重写:父类子类关系之间的,要求返回类型,方法,名参数都要一样 。

示例:

 

1.5、多态

1.5.1  多态:同一个声明对象 ,指向不同的实际对象,执行同一个操作产生,不同的结果 。

示例:

/*
        动物,
        猫,狗。
        */
        
        abstract class Animal {
            abstract void eat();
        }
        
        class Cat extends Animal {
            public void eat()  {
                System.out.println("吃鱼");
            }
            public void catchMouse() {
                System.out.println("抓老鼠");
            }
        }
        
        
        class Dog extends Animal {
            public void eat() {
                System.out.println("吃骨头");
            }
            public void kanJia() {
                System.out.println("看家");
            }
        }
        
        
        class Pig extends Animal  {
            public void eat()  {
                System.out.println("饲料");
            }
            public void gongDi()  {
                System.out.println("拱地");
            }
        }
        
        //-----------------------------------------
        
        
        class DuoTaiDemo 
        {
            public static void main(String[] args) 
            {
                //Cat c = new Cat();
                //c.eat();
        
                //Dog d = new Dog();
                //d.eat();
                //Cat c = new Cat();
                /*
                Cat c1 = new Cat();
                function(c1);
        
                function(new Dog());
                function(new Pig());
                */
        
                //Animal c = new Cat();
                //c.eat();
        
                
                function(new Cat());
                function(new Dog());
                function(new Pig());
                
        
                
            }
            public static void function(Animal a)  {
            	//Animal a = new Cat();
                a.eat();
                //a.catchMouse();
            }
            
            /*
            public static void function(Cat c)//  {
                c.eat();
            }
            public static void function(Dog d)  {
                d.eat();
            }
        
            public static void function(Pig p)  {
                p.eat();
            }
            */
        
        }

 

1.6、Instanceof运算符

1.6.1 Instanceof:用于判断运算符前面的引用变量是否是运算符后面的类型或其子类型的实例。如果条件成立,则返回true,否则返回false 。

 *  使用instanceof 运算符时,需要注意instanceof运算符前面操作数的编译时,类型要么与后面的类相同 ,要么与后面的类具有父子继承关系,否则会引起编译错误 。

1.6.2 示例:

1.7需求案例

结果及代码:

package qaz;

public class People {
	 String name="People";
	 String sex;
	 int age;
	 public void talk() {
	 System.out.println("我是People");
	 }

	public static void main(String[] args) {
	// TODO Auto-generated method stub
		People p =new Boy();
		p.talk();
		if(p instanceof Boy){
			Boy boy = (Boy)p;
			boy.talk("电子游戏");
		}else if(p instanceof Boy){
			
			p.talk();
		}
	}	
class Boy extends People{
	 String sex="男";
	 String videoGame;
	 public void talk() {
		 System.out.println("我是boy");
	 }
	 public void talk(String videoGame) {
		 System.out.println("我是boy,我喜欢"+videoGame);
	 }
}
}

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值