day6

继承:发现一些类中的属性和方法是相同的,所以把这些相同的属性和方法提取到一个新的类中,然后利用ectends关键字来让原来的类和新的类产生联系,这种联系称之为继承。
通过extends关键字可以实现类的继承;
子类可以继承父类的成员变量及成员方法,同时也可以定义自己的成员变量和成员方法;
Java语言不支持多重继承,一个类只能继承一个父类,但一个父类可以有多个子类。
重载与重写完全不同的语法现象,区别如下:
1.重载是指在一个类中定义多个方法名相同但参数列表不同的方法,在编译时,根据参数的个数和类型来决定绑定哪个方法。
2.重写是指在类中定义和父类完全相同的方法,在程序运行时,根据对象类型的不同(而不是引用类型),而调用不同的版本。

package day6;
/**
 * 学生类:
 *         private的使用
 * @author Administrator
 * 通过对象直接访问成员变量,这样操作,会引起数据安全问题:
 * 考虑:能不能不让外界直接访问对象的成员变量???
 * 使用private解决:
 * private:
 *         是一个修饰符:
 *         可以修饰成员变量,也可以修饰成员方法;
 *         被private修饰的成员只能在本类中被访问;
 * 提供相应的getXxxx()和setXxxxx()方法用于获取和设置成员变量的值
 *         方法用public修饰
 *
 */

public class OperatorDemo40 {
    
    //成员变量
    String name;
    //int age;
    private int age;
    
    public int  getAge(){
        return age;
    }
    
    public void getAge(int age){
        this.age = age;
    }
    public void setAge(int age){
        if(age < 0 || age > 150){
            System.out.println("年龄不合法");
        }
    }
    
    //成员方法
    public void printInfo(){
        System.out.println("姓名:"+ name+",年龄"+age);    
    }

}
 

package day6;

public class OperatorDemo41 {
    
    public static void main(String[] args) {
        
        OperatorDemo40 s = new OperatorDemo40();
        s.name = "张无忌";
        //s.age = 20;
        s.setAge(22);
        s.printInfo();
        s.setAge(999);
        s.printInfo();
        s.setAge(-123);
        s.printInfo();
    }

}

package day6;
/**
 * NBA篮球运动员和教练
 * 兵乓球运动员和教练
 * 现在NBA篮球运动员和教练要来中国访问学习,学习汉语;
 * 根据所学的知识,分析出类,继承,接口:
 * 分析:
 * 、由下而上,向下抽取的过程:
 * 写
 * 由上而下
 * @author Administrator
 *
 */
public class OperatorDemo44 {

}

package day6;

public class OperatorDemo45 {
    String name;
    int age;
    char gender;
    public void eat(){
        System.out.println();
    }
    public void sleep(){
        System.out.println();
    }
    
    interface SpeakChinese{
        public abstract void speak();
    }
abstract class Player extends OperatorDemo45{
    public abstract void study();
}
abstract class Coach extends OperatorDemo45{
    public abstract void teach();
}
//篮球运动员
class BasketBall extends Player{
    
    public void study(){
        System.out.println("学习扣篮");
    }
}
//兵乓球运动员
class Pinp extends Player{
    public void study(){
        System.out.println("学习打乒乓球");
    }
}
//篮球教练
class BasketBall extends Player{
    
    public void study(){
        System.out.println("教扣篮");
}
}
    class BasketBall extends Co{
        
        public void study(){
            System.out.println("教扣篮");
    }
    }

package day6;
/**
 * 抽象类的特点:
 * 1.抽象方法只能放在抽象类中;
 * 2.抽象类和抽象方法都是被abstract修饰的;
 * 3.抽象类不能创建对象(不能被实列化);
 * 4.抽象类中可以有非抽象方法的
 * 5.抽象类和类关系是继承关系;
 * 6.如果一个类继承了抽象类,要么就重写所有的抽象方法;
 * 要么就它本身设置为抽象类
 * 
 * 雇员:
 * 需求:
 * 1.公司中
 *     程序员(Programmer):姓名,年龄,工号,工资,工作;
 *     项目经理(Manager):姓名,年龄,工号,工资,奖金,工作;
 * 
 * @author Administrator
 *
 */

public class OperatorDemo48 {
    

}
abstract class Emp{
    String name;
    int age;
    String id;
    double salary;
    public abstract void work();
    class Programmer extends Emp{
        public void work(){
        System.out.println("敲代码。");
    }
}
    class Manager extends Emp{
            double bonus;
        @Override
        public void work() {
            // TODO Auto-generated method stub
            System.out.println("监督敲代码。");
        }
        
    }
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\mysql\lib\protocol\Parser.js:437 throw err; // Rethrow non-MySQL errors ^ Error: secretOrPrivateKey must have a value at module.exports [as sign] (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\jsonwebtoken\sign.js:107:20) at Query.<anonymous> (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\router_handler\2user.js:49:26) at Query.<anonymous> (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\mysql\lib\Connection.js:526:10) at Query._callback (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\mysql\lib\Connection.js:488:16) at Sequence.end (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\mysql\lib\protocol\sequences\Sequence.js:83:24) at Query._handleFinalResultPacket (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\mysql\lib\protocol\sequences\Query.js:149:8) at Query.EofPacket (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\mysql\lib\protocol\sequences\Query.js:133:8) at Protocol._parsePacket (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\mysql\lib\protocol\Protocol.js:291:23) at Parser._parsePacket (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\mysql\lib\protocol\Parser.js:433:10) at Parser.write (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\mysql\lib\protocol\Parser.js:43:10) Node.js v18.12.1
06-08

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值