zoukankan      html  css  js  c++  java
  • java面向对象基础复习

    对java基础的一个复习总结吧。

    1、继承:通过使用关键字extends,子类可以继承父类所有的方法和属性,但是无法使用 private(私有) 的方法和属性,一次只能继承一个父类。

    2、重写:重写(override)是子类对父类的允许访问的方法的实现过程进行重新编写!返回值和形参都不能改变。

    3、重载:重载(overload) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。

    4、多态:存在的三个条件

    • 继承
    • 重写
    • 父类引用指向子类对象

    5、抽象类:abstract class来定义抽象类。

    6、抽象方法:如果一个类包含抽象方法,那么该类必须是抽象类。

    7、封装:简单的说就是成员私有,通过set和get方法来获取。

    8、接口:是抽象方法的集合,接口通常以interface来声明。

    • 接口没有构造方法。
    • 接口中所有的方法必须是抽象方法。
    • 接口不能包含成员变量,除了static和final变量。
    • 接口支持多重继承。

    9、包(package):Java使用包(package)这种机制是为了防止命名冲突,访问控制,提供搜索和定位类

    自己写了一段代码来使用以上的知识点。

    父类:animals。这是一个抽象类,因为里面声明了抽象方法eat。对于成员变量name,使用了封装的思想,声明为私有,只能通过getName和setName访问。

    还有一个move方法,用于给子类重写的。

    子类:Cat。实现了eat,重写了move,重载了move,新增了自己的方法sleep。

    子类:Dog。实现了eat,重写了move。

    以上三个类放在animals包里面。

    main.java:

    import animals.*;
    
    public class main {
    	
    	public static void main(String args[]){
    		
    		
    		//父类指向子类引用(向上转型)
    		animals cat = new Cat("cat");
    		animals dog = new Dog("Dog");
    		
    		
    		cat.eat();
    		dog.eat();
    		
    		
    		
    		//重写(与父类不同)
    		cat.move();
    		dog.move();
    		
    		
    		
    		//cat.sleep();会报错,因为animals里面没有sleep
    		//cat。move(5);会报错,因为animals里面没有重载move(int)
    		
    		if(cat instanceof Cat){//判断是不是Cat类的一个实例
    			
    			Cat newCat = (Cat)cat;//向下转型
    			
    			System.out.println(newCat.getName());
    			newCat.sleep();
    			newCat.move(5);//重载,有相同名字的函数,但是参数列表不同
    			
    			
    			
    		}
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    	}
    
    	
    
    }
    

    animals.java

    package animals;
    
    //只能有一个公有类
    
    //有抽象函数,所以为抽象类
    public abstract class animals{
    		
    		private String name;//封装
    		
    		
    		//构造函数
    		animals(String name){
    			
    			this.name = name;
    			
    		}
    		
    		//具体的方法,由子类实现,所以定义为抽象
    		public abstract void eat();
    		
    		//同用的方法,用于重写
    		public void move(){
    			
    			System.out.println("动物可以移动");
    			
    			
    		}
    		
    		
    		//通用的方法,父类实现
    		public void setName(String name){
    			
    			this.name = name;
    			
    		}
    		
    		public String getName(){
    			
    			return name;
    			
    		}
    		
    	}
    	
    

    Cat.java

    package animals;
    
    //猫
    public class Cat extends animals{
    		
    		//每个类都得有自己的构造函数
    		public Cat(String name) {
    			super(name);
    			
    		}
    
    		//因为继承了动物类,所以成员name,以及setName、getName.move都有的
    		
    		//因为父类是抽象类,必须实现抽象方法
    		public void eat(){
    			
    			System.out.println("猫吃鱼");
    			
    		}
    		
    		//可以对父类存在的方法进行重写
    		public void move(){
    			
    			//调用父类的同名函数
    			super.move();
    			System.out.println("猫可以跑!");
    			
    		}
    		
    		//重载
    		public void move(int num){
    			
    			move();
    			System.out.println("猫跑了"+num+"s");
    			
    			
    		}
    		
    		//新增的属于自己的方法
    		public void sleep(){
    			
    			System.out.println("Slepping!");
    			
    		}
    		
    		
    		
    		
    }
    	
    

    Dog.java

    package animals;
    
    
    
    public class Dog extends animals{
    	
    	//每个类都得有自己的构造函数
    	public Dog(String name) {
    		super(name);
    		
    	}
    
    	//因为继承了动物类,所以成员name,以及setName、getName.move都有的
    	
    	//因为父类是抽象类,必须实现抽象方法
    	public void eat(){
    		
    		System.out.println("狗吃啥?");
    		
    	}
    	
    	//可以对父类存在的方法进行重写
    	public void move(){
    		
    		//调用父类的同名函数
    		super.move();
    		System.out.println("狗也可以跑!");
    		
    	}
    }
    	
    

    输出:

  • 相关阅读:
    scoped中预处理器的解析问题
    uni-app中IOS离线打包报HBuilder has conflicting provisioning settings
    js 四则运算
    Chrome 的更改可能会破坏您的应用:为同网站 Cookie 更新做好准备
    银行数据仓库体系实践(20)--浅谈银行数据仓库发展趋势
    数据仓库十大主题;TeraData金融数据模型
    Linux环境下SVN的安装,创建用户以及对应用户的权限设置
    银行数据仓库体系实践(19)--数据应用之AI
    from flask.ext.wtf import Form提示No module named 'flask.ext'
    flask学习笔记2 路由
  • 原文地址:https://www.cnblogs.com/wzben/p/5979324.html
Copyright © 2011-2022 走看看